本文列舉了Java多線程相關的一些重要概念,作為后續(xù)系列文章索引。
Linux鎖機制對比
- spinlock: 自旋鎖,CPU自旋等待獲得鎖,運行機制CAS (Compare and Swap)
- mutex: 互斥鎖,線程sleep等待鎖
- semaphore:信號量,同步機制,如果信號量的值為1,則效果與mutex相同。如果信號量為2則可以同時讓兩個線程訪問資源
參考:spinlock、semaphore和mutex的區(qū)別
JAVA原子類與CAS
JAVA synchronize關鍵字與Lock
JAVA信號量
Java多線程實現(xiàn)原理
- volatile關鍵字
- AQS
volatile 關鍵字
作用:
- 內(nèi)存可見性
- happens-before
AQS
參考: