新建立的執行緒可以訪問程序的位址空間,並且繼承呼叫執行緒的浮點環境和訊號遮蔽字,但是該執行緒的掛起訊號集會被清除
新執行緒時呼叫pthread_self函式獲取自己的執行緒id,而不是從共享記憶體中讀出,或者從執行緒的啟動歷程中以引數的形式接收到的,因為新執行緒可能在主線程呼叫pthread_create返回之前就執行了,那麼新執行緒看到的是未初始化的ntid的內容
單個執行緒可以通過3種方式退出
pthread_exit函式的無型別指標引數所指向的結構所使用的內存在呼叫者完成呼叫以後必須是有效的(為了解決這個問題,可以使用全域性結構或者用malloc函式分配結構)
當執行緒執行以下動作時,清理函式rtn是由pthread_cleanup_push函式呼叫的
程序原語
執行緒原語
描述fork
pthread_create
建立新的控制流
exit
pthread_exit
從現有的控制流中退出
waitpid
pthread_join
從控制流中得到退出狀態
atexit
pthread_cancel_push
註冊在退出控制流時呼叫的函式
getpid
pthread_self
獲取控制流的id
abort
pthread_cancel
請求控制流的非正常退出
7. 可移植的程式並不能對使用何種處理器體系結構做出任何假設
8. 互斥機制要正常工作必須要求所有執行緒都設計成遵守相同資料訪問規則
9. 讀寫鎖(讀共享寫互斥)允許更高的並行性,當讀寫鎖處於讀模式鎖住的狀態,而這時有乙個執行緒試圖以寫模式獲取鎖時,讀寫鎖通常會阻塞隨後的讀模式鎖請求,這樣可以避免讀模式鎖長期占用,而等待的寫模式鎖請求乙個得不到滿足
apue 第十一章 執行緒
pthread join pthread t tid,void rval ptr old執行緒建立了new執行緒,然後呼叫pthread join來等待new執行緒返回,返回值為 rval ptr apue中提到乙個執行緒的分離狀態概念 模擬於程序,子程序在退出中,會保留退出狀態供父程序呼叫wait...
第十一章 讀書筆記
第十一章 linux驅動程式中的 併發控制 併發 concurrency 指的是多個執行單元同時 並行被執行。而併發的執行單元對共享資 源 如硬體資摞 程式中的全域性變數 靜態變數等 的訪問很容易導致競態條件 race conditions 自旋鎖並不關心鎖定的 臨界區究竟是怎樣的操作,不管是讀還是...
第十一章讀書筆記
併發 concurrency 指的是多個執行單元同時 並行被執行。而併發的執行單元對共享資 源 如硬體資摞 程式中的全域性變數 靜態變數等 的訪問很容易導致競態條件 race conditions 例如,有乙個裝置檔案。程序 a 向該個裝置檔案寫入 1000 個 a飛而程序 b 向 裝置檔案寫入了 ...