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