C語言之執行緒學習

2021-08-16 06:50:04 字數 755 閱讀 8383

1. 執行緒呼叫函式中使用pthread_self() 獲取執行緒id,而不是通過pthread_create() 的第乙個引數tidp獲取執行緒id?

受編譯器的影響,pthread_create返回的tidp可能在執行執行緒函式之後返回,從而執行緒函式獲取的tidp不存在。

2. 使用pthread_join 獲取執行緒退出的引數時,需要保證退出的記憶體沒有被改變或者記憶體**(引數是全域性、靜態、malloc或常量)

3. pthread_cancel和pthread_exit 會呼叫pop函式

pthread_cancel 屬於執行緒取消其他執行緒的函式,並不等待執行緒終止,僅僅傳送請求

pthread_exit 為本執行緒的退出函式

pthread_join 可獲取執行緒退出的狀態

pthread_detach 執行緒分離,防止pthread_join堵住執行緒。使用執行緒分離,執行緒退出後自動**資源,而不是等程序結束後回去,當然不可用pthread_join獲取執行緒退出的狀態

互斥鎖:死鎖-當執行緒1鎖住任務a,獲取任務b,而執行緒2鎖住任務b,獲取任務a,此時將出現死鎖的情況

條件變數:條件變數和互斥結合使用,允許執行緒以無競爭的方式等待特定事件的發生。互斥鎖是為了保護此條件,如果此條件一定滿足,則釋放互斥鎖;如果不滿足,則一直鎖住該條件。

1 for(;;)

2 8     pthread_mutex_unlock(&qlock);

9 }   

10 11 pthread_cond_signal(&qready);

c語言之鍊錶學習

include include include define max 1000 編一c程式,它能讀入兩組整數 每組整數都以 9999為結束標記,個數都不大於1000 並以從小到大的次序輸出既在第一組整數中也在第二組整數中的所有整數 同乙個整數不能輸出兩次 輸入時,兩個相鄰的整數用空格隔開 它能讀入一...

C語言之makefile學習筆記

基礎makefile結構 edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o cc o edit main.o kbd.o command.o display.o insert.o search.o file...

C語言之靈魂 指標學習

指標是c語言的難點 稱之為c語言的靈魂一點也不為過,不過指標用好了能事半功倍,用不好bug滿天飛。一 指標的概念 指標也是變數只不過是特殊的變數,指標的值是另乙個變數的地 也就是變數所在的記憶體位址 指標的定義 在變數名之前加 號即可。如 char point 二 指標的應用 1.指標與普通變數 指...