posix執行緒庫《一》

2021-07-10 03:54:25 字數 1310 閱讀 8914

posix執行緒庫的使用方法:

1. 與執行緒有關的函式構成了乙個完成的系列,絕大多數函式的名字有是以「pthread_"開頭的

2. 要使用這些函式庫,要通過引入

3. 鏈結這些執行緒函式庫時要使用編譯器命令的」-lpthread"

執行緒和程序比較:

程序執行緒

pid_t pthread_t

fork() pthread_create()

waitpid pthread_join()

exit() pthread_exit()

僵程序 僵執行緒

waitpid() pthread_join()

kill(他殺) pthread_cancel()(他殺)

函式介紹:

int pthread_create(pthread_t * thread, const pthread_attr * attr, void *(*start_routine)(void*), void * arg);

功能:建立乙個新的執行緒

引數:thread:返回執行緒id

attr :設定執行緒的屬性,attr為null表示使用預設屬性

start_routine: 是個函式位址, 執行緒啟動後要執行的函式

arg: 傳給執行緒啟動函式的引數

返回值:成功返回0,失敗返回錯誤碼

錯誤檢查:

1.傳統的一些函式是,成功返回0,失敗返回-1,並且對全域性變數errno賦值以指示錯誤

2.pthreads函式出錯時不會設定全域性變數errno(而大部分其他posix函式也會這樣做)。而是將錯誤**通過返回值返回

3.pthreads同樣也提供了執行緒內的errno變數,以支援其他使用errno的**,對於pthreads函式的錯誤,建議通過返回值業判定,因為讀取返回值要比讀取執行緒內的errno變   量的開銷更小

void pthread_exit(void*value_ptr)

功能:執行緒終止

引數:value_ptr:不要指向乙個區域性變數

返回值:無返回值,跟程序一樣,執行緒結束的時候無法返回到他的呼叫者

pthread_self(void)

功能:返回執行緒id

返回值:成功返回0;

int pthread_cancel(pthread_t thread)

功能:取消乙個執行中線程(乙個執行緒可以殺死另外乙個執行緒)

引數:thread:執行緒id

返回值:成功返回0,失敗返回錯誤碼

pthead_detach()

功能:將乙個執行緒分離

引數:執行緒id

返回值:成功返回0;失敗返回錯誤碼

POSIX執行緒(一)

第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...

POSIX執行緒(一)

第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...

POSIX執行緒(一)

第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...