線程同步的工具
- 原子操作
原子操作是同步簡單的形式。它處理簡單的數(shù)據(jù)類型。原子操作的優(yōu)勢它們不妨礙競爭的線程。 - 內(nèi)存屏障和Volatile
- 鎖
鎖是最常用的同步工具。你可以是使用鎖來保護(hù)臨界區(qū)(critical section),這些代碼段在同一時間只能允許被一個線程訪問。
Lock
Mutex(互斥鎖)
Recursive lock(遞歸鎖)
Read-write lock(讀寫鎖)
Distributed lock (分布鎖)
Spin lock(自旋鎖)
Double-checked lock(雙重檢查鎖) - 條件
條件是信號量的另外一個形式,它允許在條件為真的時候線程間互相發(fā)送信號。
條件通常被使用來說明資源可用性,或用來確保任務(wù)以特定的順序執(zhí)行。當(dāng)一個線程測試一個條件時,它會被阻塞直到條件為真。它會一直阻塞直到其它線程顯式的修改信號量的狀態(tài)。