說明:本文**多執行緒程式設計之pthread_create函式應用,在此基礎上筆者做了些許改動。
pthread_create函式
函式簡介
pthread_create是unix環境建立執行緒函式
標頭檔案
#include
函式宣告
int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
返回值
若成功則返回0,否則返回出錯編號
引數
第乙個引數為指向執行緒識別符號的指標。
第二個引數用來設定執行緒屬性。
第三個引數是執行緒執行函式的位址。
最後乙個引數是執行函式的引數。
注意
在編譯時注意加上-lpthread引數,以呼叫靜態鏈結庫。因為pthread並非linux系統的預設庫。
pthread_join函式
函式簡介
函式pthread_join用來等待乙個執行緒的結束。
函式原型為:
extern int pthread_join __p (pthread_t __th, void **__thread_return);
引數:
第乙個引數為被等待的執行緒識別符號
第二個引數為乙個使用者定義的指標,它可以用來儲存被等待執行緒的返回值。
注意
這個函式是乙個執行緒阻塞的函式,呼叫它的函式將一直等待到被等待的執行緒結束為止,當函式返回時,被等待執行緒的資源被收回。如果執行成功,將返回0,如果失敗則返回乙個錯誤號。
例子:
1 #include2 #include3 #include4編譯與執行結果編譯與執行結果如下圖所示,可以看到主線程main和執行緒pthread交替執行。也就是說是當我們建立了執行緒pthread之後,兩個執行緒都在執行,證明建立成功。另外,可以看到建立執行緒pthread時候,傳入的引數被正確列印。5 /* 宣告結構體 */
6 struct member
7 ;
11 12 /* 定義執行緒pthread */
13 static void * pthread(void *arg)
14 30
31 /* main函式 */
32 int main(int agrc,char* argv)
33 48
49 /* 令執行緒pthread先執行 */
50 sleep(1);
51
52 /* 執行緒pthread睡眠2s,此時main可以先執行 */
53 printf("mian continue!\n");
54
55 /* 等待執行緒pthread釋放 */
56 if (pthread_join(tidp, null))
57
61
62 return 0;
63 }
pthread create 引數傳遞指標問題
pthread create 引數傳遞指標問題 2010 11 04 15 52 linux 下常用的建立多執行緒函式pthread create pthread t thread pthread attr t attr void start routine void void args 其中第乙個...
pthread create 引數傳遞指標問題
linux 下常用的建立多執行緒函式pthread create pthread t thread pthread attr t attr void start routine void void args 其中第乙個引數用來儲存執行緒資訊,第二個引數指新執行緒的執行屬性,可以設定為null,第三個...
pthread create 函式用法
天開始學習linux下用c開發多執行緒程式,linux系統下的多執行緒遵循posix執行緒介面,稱為pthread。include int pthread create pthread t restrict tidp,const pthread attr t restrict attr,void s...