標頭檔案:#include b函式原型:int pthread_created(pthread_t *thread,pthread_attr_t *attr,void * (*start_routine)(void *),void *arg); 函式引數含義: thread:該引數是乙個指標,當執行緒建立成功時,用來返回建立的執行緒的id. attr:該引數用於指定執行緒的屬性,null表示預設屬性. start_routine:該引數為乙個函式指標,指向執行緒建立後要呼叫的函式; arg:該引數指向傳遞給執行緒函式的引數. 執行緒建立成功時,pthread_create函式返回0,若不為0,則說明建立執行緒失敗,常見的錯誤碼為eagain,和einval,前者表示系統限制建立新的執行緒.後者表示第2引數代表的執行緒屬性值非法,執行緒建立成功後,新建立的執行緒開始執行第3個引數所指的函式,原來的執行緒繼續執行. pthread_create函式的第2個引數attr是乙個指向pthread_attr_t結構體的指標,該結構體指明待建立的執行緒的屬性.看個例子:
#include #include #include #include #include int *thread(void *arg)結果:int main(void)
sleep(1);
exit(0);
}
yang@liu:~/syc/第八章$ ./createthread主線程的id is 2025752320
這是新的執行緒 id = 2017445632
建立執行緒的其它系統函式:
pthread_t pthread_self(void) 獲取本執行緒的執行緒 id; pthread_equal(pthread_t thread,pthread_t thread2) 判斷兩個執行緒id是否指向同乙個執行緒. int pthread_once(pthread_once_t *once_control,void (*init_routinue)(void)) 用來保證init_routinue執行緒函式在程序中僅執行一次.看個例子:
#include #include #include pthread_once_t once=pthread_once_init;結果:void run()
void *thread1()
void *thread2()
int main()
yang@liu:~/syc/第八章$ ./createthread當前的執行緒id = 2849777408
我是功能函式,我正在執行,id = 2849777408
thread2結束!
當前的執行緒id = 2858170112
thread1結束!
主線程結束!
CreateThread函式 建立執行緒
微軟在windows api中提供了建立新的執行緒的函式createthread,概述 當使用createprocess呼叫時,系統將建立乙個程序和乙個主線程。createthread將在主線程的基礎上建立乙個新執行緒,大致做如下步驟 1在核心物件中分配乙個執行緒標識 控制代碼,可供管理,由crea...
執行緒函式(建立 取消 等待)
1.建立執行緒 建立執行緒的函式定義如下 include int pthread create pthread t restrict thread const pthread attr t restrict attr,void start routine void void restrict arg...
執行緒 建立執行緒
重寫run public void run 例項化物件 類名 t new 類名 設定屬性 名字,優先順序 優先順序是1 10的整數,1最小,預設是5 優先順序越高,該執行緒占用cpu的時間 機會 越多。id是自動生成 t.setname 執行緒1 t.setpriority 4 啟動執行緒,預設呼叫...