Linux下C語言程式設計

2021-06-25 14:51:43 字數 2058 閱讀 1154

#include #include 

#include

#include

#define max 10pthread_t thread[2];

pthread_mutex_t mut;

int number=0

, i;

void *thread1()

printf(

"thread1 :主函式在等我完成任務嗎?\n");

pthread_exit(null);

}void *thread2()

printf(

"thread2 :主函式在等我完成任務嗎?\n");

pthread_exit(null);

}void thread_create(void

)void thread_wait(void

)

if(thread[1] !=0)

}int

main()

我是主函式哦,我正在建立執行緒,呵呵

執行緒1被建立

執行緒2被建立

我是主函式哦,我正在等待執行緒完成任務阿,呵呵

thread1 : i

'm thread 1

thread1 : number = 0

thread2 : i

'm thread 2

thread2 : number = 1

thread1 : number = 2

thread2 : number = 3

thread1 : number = 4

thread2 : number = 5

thread1 : number = 6

thread1 : number = 7

thread2 : number = 8

thread1 : number = 9

thread2 : number = 10

thread1 :主函式在等我完成任務嗎?

執行緒1已經結束

thread2 :主函式在等我完成任務嗎?

執行緒2已經結束

下面乙個稍微複雜的多執行緒

extern int pthread_join __p ((pthread_t __th, void **__thread_return));

第乙個引數為被等待的執行緒識別符號,第二個引數為乙個使用者定義的指標,它可以用來儲存被等待執行緒的返回值。這個函式是乙個執行緒阻塞的函式,呼叫它的執行緒將一直等待到被等待的執行緒結束為止,當函式返回時,被等待執行緒的資源被收回。乙個執行緒的結束有兩種途徑,一種是象我們上面的例子一樣,函式結束了,呼叫它的執行緒也就結束了;另一種方式是通過函式pthread_exit來實現。它的函式原型為:

extern void pthread_exit __p ((void *__retval)) __attribute__ ((__noreturn__));

唯一的引數是函式的返回**,只要pthread_exit中的引數retval不是null,這個值將被傳遞給 thread_return。最後要說明的是,乙個執行緒不能被多個執行緒等待,否則第乙個接收到訊號的執行緒成功返回,其餘呼叫pthread_join的執行緒則返回錯誤**esrch。

例項:

#include #include 

#include

pthread_t tid1, tid2;

void *tret;

void *thr_fn1(

void *arg)

void *thr_fn2(

void *arg)

intmain(

void)

命令:#gcc -lthread myfile11-3

.c :#./a.out

執行結果:

thread

2exiting

thread

2 exit code 3

thread

1returning

thread

1 exit code 2

Linux 下C語言程式設計

linux 下c語言程式設計 1.程式設計的概念和理解 1.1程式編譯的過程 在這一操作中,程式完成了複雜的過程。乙個程式的編譯,需要完成詞法分析 語法分析 中間 生成 優化 目標 生成。l 詞法分析 指的是對由字元組成的單詞進行處理,從左至右逐個字元地對源程式進行掃瞄,產生乙個個單詞符號。然後把字...

Linux下C語言程式設計概述

linux下的c語言程式設計與在其他環境中的c程式設計一樣,主要涉及到編輯器 編譯鏈結器 偵錯程式及專案管理工具。本篇內容屬於嵌入式學院 嵌入式工程師職業培訓班 一期課程中linux作業系統中的部分內容,這裡我們先對這4種工具進行一下簡單介紹。1 編輯器 linux下的編輯器就如windows下的w...

Linux下C語言程式設計概述

linux下的c語言程式設計與在其他環境中的c程式設計一樣,主要涉及到編輯器 編譯鏈結器 偵錯程式及專案管理工具。本篇內容屬於嵌入式學院嵌入式工程師職業培訓一期課程中linux作業系統中的部分內容,這裡我們先對這4種工具進行一下簡單介紹。1 編輯器 linux下的編輯器就如windows下的word...