執行緒基礎 (Thread Basic)
執行緒 基礎教學與筆記。
說明
main 指派完 thread 的工作後,繼續完成接續的程式,並在最後等待 thread 完成工作。
1 |
|
競爭條件 (Race Condition)
使用互斥鎖 (Mutual Exclusion, Mutex)、Lock
行程死結 (Process Deadlock)
原因四要素
互斥 (Mutual Exclusion):
一個系統資源只能被一個行程所持有。
禁止搶占 (No Preemption):
系統資源不能被強制從一個行程中退出。
持有和等待 (Hold and Wait):
一個行程可以在等待時持有系統資源。
循環等待 (Circular Waiting):
一系列行程互相持有其他行程所需要的資源。
解決死結
破壞互斥:
很困難(不可能)打破。
破壞禁止搶占:
提高優先權。
破壞持有和等待:
除非 process 可以一次取得完成工作所需的全部資源,才允許 process 持有資源,否則不准持有任何資源
一旦要申請新資源,則必須先釋放持有的全部資源,才可以提申請。
破壞循環等待:
給予每個Resource唯一的(unique)資源編號(ID)、規定process需依資源編號遞增
的方式提出申請。
執行緒基礎 (Thread Basic)