pthread_create

pthread_create

pthread_create是類Unix作業系統(Unix、Linux、Mac OS X等)的創建執行緒的函式。它的功能是創建執行緒(實際上就是確定調用該執行緒函式的入口點),線上程創建以後,就開始運行相關的執行緒函式。 pthread_create的返回值 表示成功,返回0;表示出錯,返回-1。

函式簡介

頭檔案

函式聲明

編譯連結參數

-lpthread

返回值

若執行緒創建成功,則返回0。若執行緒創建失敗,則返回出錯編號,並且*thread中的內容是未定義的。

返回成功時,由tidp指向的記憶體單元被設定為新創建執行緒的執行緒ID。attr參數用於指定各種不同的執行緒屬性。新創建的執行緒從start_rtn函式的地址開始運行,該函式只有一個萬能指針參數arg,如果需要向start_rtn函式傳遞的參數不止一個,那么需要把這些參數放到一個結構中,然後把這個結構的地址作為arg的參數傳入。

linux下用C語言開發多執行緒程式,Linux系統下的多執行緒遵循POSIX執行緒接口,稱為pthread。

參數

第一個參數為指向執行緒標識符的指針。

第二個參數用來設定執行緒屬性。

第三個參數是執行緒運行函式的起始地址。

最後一個參數是運行函式的參數。

注意事項

因為pthread並非Linux系統的默認庫,而是POSIX執行緒庫。在Linux中將其作為一個庫來使用,因此加上 -lpthread(或-pthread)以顯式連結該庫。函式在執行錯誤時的錯誤信息將作為返回值返回,並不修改系統全局變數errno,當然也無法使用perror()列印錯誤信息。

示例

輸出執行緒標識符

$ gcc main.c -o main -std=c99 -pthread

$ ./main

main thread: pid 13073 tid 3077572816 (0xb77008d0)

new thread: pid 13073 tid 3077569392 (0xb76ffb70)

簡單的執行緒程式

$ gcc thread_test.c -o thread_test -std=c99 -pthread

$ ./thread_test

Creating thread 0

Creating thread 1

Creating thread 2

Creating thread 3

Creating thread 4

Creating thread 5

Creating thread 6

Creating thread 7

Hello from thread 8

Hello from thread 8

Hello from thread 8

Hello from thread 8

Hello from thread 8

Hello from thread 8

Hello from thread 8

Hello from thread 8

相關詞條

熱門詞條

聯絡我們