pthread_create

pthread_create

原型:
int pthread_create(pthread_t tid, const pthread_attr_t *attr, (void)(start_routine)(void), void *arg);


功能:創建線程(實際上就是確定調用該線程函數的入口點),在線程創建以後,就開始運行相關的線程函數。


參數:
tid:指向線程標識符的指針
attr:用來設置線程屬性
start_routine:線程運行函數的起始地址
arg:傳遞給start_routine的參數


返回值:
若線程創建成功,則返回0。若線程創建失敗,則返回出錯編號,並且*thread中的內容是未定義的。錯誤編號:
EAGAIN
描述: 超出了系統限制,如創建的線程太多。
EINVAL
描述: tattr 的值無效。


說明:
如果未指定屬性對象,則該對象爲NULL,系統會創建具有以下屬性的缺省線程: 進程範圍、 非分離、 缺省棧和缺省棧大小、 零優先級。
還可以用pthread_attr_init() 創建缺省屬性對象,然後使用該屬性對象來創建缺省線程。
start_routine 是新線程最先執行的函數。
當start_routine 返回時,該線程將退出,其退出狀態設置爲由start_routine 返回的值。


示例:

#include <pthread.h>
pthread_attr_t() tattr;
pthread_t tid;
extern void *start_routine(void *arg);
void *arg;
int ret;
/* default behavior*/
ret = pthread_create(&tid, NULL, start_routine, arg);
/* initialized with default attributes */
ret = pthread_attr_init(&tattr);
/* default behavior specified*/
ret = pthread_create(&tid, &tattr, start_routine, arg);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章