天天看點

公平鎖,非公平鎖,可重入鎖,遞歸鎖,自旋鎖

---公平鎖,非公平鎖,可重入鎖,遞歸鎖,自旋鎖

主題清單:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro, healer-readable, mk-cute, jzman, geek-black, awesome-green, qklhk-chocolate貢獻主題:https://github.com/xitu/juejin-markdown-themes

theme: juejin

highlight:

公平鎖|非公平鎖并發包中ReentrantLock建立指定構造函數的boolean類型來得到公平鎖還是非公平鎖,預設是非公平鎖。

公平鎖和非公平鎖的差異?

公平鎖是指多個線程按照申請鎖的順序來擷取鎖。

非公平鎖是指多個線程擷取鎖的時候,擷取鎖的順序并不是按照申請擷取鎖的順序,有可能後申請的線程優先擷取鎖,在高并發的情況下,也可能會造成優先級反轉或饑餓現象。

兩者差別:

公平鎖:就是講究公平,每個線程擷取鎖時,會先檢視此鎖維護的隊列。如果為空,目前線程是等待隊列的第一個就占有鎖,否則就會加入到等待隊列中,後續會按照FIFO的規則從隊列中擷取。

繼續閱讀