pthread_create(執行緒建立)
1、標頭檔案:#include
2、函式原型:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);
3、函式形參:thread:存放執行緒的tid(由pthread_t定義)位址;
attr:設定執行緒屬性,一般置null;
start_routine:執行緒所要執行的函式位址;
arg:傳遞給執行緒函式的引數。
注:(1)start_routine是void *型函式,其形參也為void *型。
(2)arg:這個引數會傳遞給pth_arg,如果引數很多的話,可做成乙個結構體,然後將結構體變數的位址傳過去。若不想傳遞引數,可設定為null。
4、函式返回值:成功返回0,失敗返回錯誤號。
5、使用示例:
注:編譯時要鏈結執行緒庫(libpthread.a/.so):gcc pthread create.c –lpthread
(1)arg為null。
(2)arg有值且為全域性變數,實現所有執行緒共享主線程(程序)的資料段。
(3)arg有值且為區域性變數,使用位址傳參,在呼叫的函式中必須將void *arg強轉為對應的資料型別。
執行緒建立函式pthread create
標頭檔案 include b函式原型 int pthread created pthread t thread,pthread attr t attr,void start routine void void arg 函式引數含義 thread 該引數是乙個指標,當執行緒建立成功時,用來返回建立的執...
使用pthread create 建立執行緒
可以通過pthread create 函式建立新執行緒。include int pthread create pthread t restrict tidp,const pthread attr t restrict attr,void start rtn void void restrict ar...
pthread create 建立執行緒最大個數
執行緒應用程式最常見導致建立執行緒失敗的原因是執行緒棧大小的設定。建立乙個新的執行緒,預設情況下系統為執行緒棧預留了2mb的定址空間。執行緒棧起始於程序虛擬 記憶體的高階位址,並向虛擬記憶體底端位址方向擴充套件。取決於執行緒本身的大小以及其它執行緒記憶體分配的情況,程序虛擬位址空間消耗過快可能導致建...