java的幾種鎖

公平鎖/非公平鎖

概念:所謂公平鎖,就是多個線程按照申請鎖的順序來獲取鎖,類似排隊,先到先得。而非公平鎖,則是多個線程搶奪鎖,會導致優先級反轉飢餓現象

區別:公平鎖在獲取鎖時先查看此鎖維護的等待隊列爲空或者當前線程是等待隊列的隊首,則直接佔有鎖,否則插入到等待隊列,FIFO原則。非公平鎖比較粗魯,上來直接先嚐試佔有鎖,失敗則採用公平鎖方式。非公平鎖的優點是吞吐量比公平鎖更大。

synchronizedjuc.ReentrantLock默認都是非公平鎖ReentrantLock在構造的時候傳入true則是公平鎖

可重入鎖/遞歸鎖

可重入鎖又叫遞歸鎖,指的同一個線程在外層方法獲得鎖時,進入內層方法會自動獲取鎖。也就是說,線程可以進入任何一個它已經

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章