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建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...