函式簡介
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 #include45/*編譯與執行結果宣告結構體 */6
struct member
7 ;
1112
/*定義執行緒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);
5152
/*執行緒pthread睡眠2s,此時main可以先執行
*/53 printf("
mian continue!\n
");54
55/*
等待執行緒pthread釋放
*/56
if (pthread_join(tidp, null))
57
6162
return
0;63 }
編譯與執行結果如下圖所示,可以看到主線程main和執行緒pthread交替執行。也就是說是當我們建立了執行緒pthread之後,兩個執行緒都在執行,證明建立成功。另外,可以看到建立執行緒pthread時候,傳入的引數被正確列印。
Linux多執行緒之執行緒建立
1.函式 include intpthread create pthread t restrict thread,const pthread attr t restrict attr,void start routine void void restrict arg 引數 thread 為執行緒id...
管理執行緒之建立執行緒
基本的執行緒管理包括 1 建立執行緒。2 等待它結束或在後台執行。3 向執行緒函式傳遞引數,更改執行緒物件所有權。4 選擇執行緒和使用特定執行緒。void do some work std thread my thread do some work 這是最簡單的情況,std thread還可以使用可...
執行緒之執行緒的建立
在傳統的unix程序模型中,每個程序只有乙個控制線程。從概念上講,這與基於執行緒的模型中只包含乙個執行緒是相同的。在posix執行緒 pthread 的情況下,程式開始執行時,它也是以單程序中的單個控制線程啟動的,在建立多個控制線程以前,程式的行為與傳統的程序並沒有什麼區別。新增的執行緒可以通過呼叫...