Java核心知識 多線程併發 公平鎖與非公平鎖(十三)

Java核心知識 多線程併發 公平鎖與非公平鎖(十三)

公平鎖(Fair)

加鎖前檢查是否有排隊等待的線程,優先排隊等待的線程,先來先得

非公平鎖(Nonfair)

加鎖時不考慮排隊等待問題,直接嘗試獲取鎖,獲取不到自動到隊尾等待

1. 非公平鎖性能比公平鎖高 5~10 倍,因為公平鎖需要在多核的情況下維護一個隊列

2. Java 中的 synchronized 是非公平鎖,ReentrantLock 默認的 lock()方法採用的是非公平鎖。


分享到:


相關文章: