linux 多執行緒

2021-08-26 08:41:43 字數 633 閱讀 7492

程序裡建立乙個子執行緒時,實際上會複製自身的乙個程序,在這個程序裡去執行該子執行緒。這個程序複製原有的變數和環境等,跟fork建立子程序不同。主要過程是主線程建立子執行緒,(子執行緒工作),主線程等待子執行緒結束。

建立執行緒時,第乙個引數給子執行緒乙個id,用於標識執行緒。第三個給執行緒指定執行函式的指標,第四個指定函式輸入的引數值。第二個引數還可以設定執行緒屬性。

pthread_create(pthread_t*  id,const pthread_attr_t* attr,(void*)(*start_rtn)(void*),void *arg)

pthread_join(pthread_t id,void** retval)

主線程阻塞等待該id標識的子執行緒,第二個引數可以儲存子執行緒返回值。該函式乙個作用可以防止子執行緒未執行完主線程就退出了,另乙個作用是釋放子執行緒執行時複製的程序的資源。

#include#includevoid pthread0();

void pthread1(int a);

void pthread0()

}void pthread1(int a)

}int main()

gcc -o thread thread.c -lpthread

linux多執行緒

linux下為了多執行緒同步,通常用到鎖的概念。posix下抽象了乙個鎖型別的結構 ptread mutex t。通過對該結構的操作,來判斷資源是否可以訪問。顧名思義,加鎖 lock 後,別人就無法開啟,只有當鎖沒有關閉 unlock 的時候才能訪問資源。它主要用如下5個函式進行操作。1 pthre...

linux多執行緒

執行緒標識 就像每個程序都有乙個id一樣,執行緒也有自己的id。程序id用pid t來表示,他是乙個unsigned int。程序id用pthread t來表示,pthread t不能把它當整數處理。程序可以通過pthread self 函式獲得自身的執行緒id。執行緒建立 在程序中只有乙個控制線程...

Linux多執行緒

一 執行緒的特點 1.執行緒是程序的乙個執行流,是cpu排程和分配的基本單位。執行緒是程式執行的最小單位。2.執行緒不會影響到其它執行緒的執行。比如乙個執行緒崩潰,其它執行緒正常執行。3.同一程序內的執行緒共享程序的位址空間。二 乙個執行緒的組成 1.乙個指向當前被執行指令的指令指標 2.乙個棧空間...