鎖的概念
可重入
不可重入
公平鎖
非公平鎖
鎖中斷
通過一個故事理解可重入鎖的機(jī)制 - 小勇DW3 - 博客園
獨(dú)占鎖、共享鎖、更新鎖,樂觀鎖、悲觀鎖 - gds通用軟件開發(fā)系統(tǒng) - 博客園
獨(dú)占鎖
共享鎖
樂觀鎖
悲觀鎖
排它鎖 (mysql中的行鎖 間隙鎖 next-key鎖)
更新鎖
死鎖
學(xué)過操作系統(tǒng)的朋友都知道產(chǎn)?死鎖必須具備以下四個條件:
- 互斥條件:該資源任意?個時刻只由?個線程占?。
- 請求與保持條件:?個進(jìn)程因請求資源?阻塞時,對已獲得的資源保持不放。
- 不剝奪條件:線程已獲得的資源在末使?完之前不能被其他線程強(qiáng)?剝奪,只有??使?完畢
后才釋放資源。 - 循環(huán)等待條件:若?進(jìn)程之間形成?種頭尾相接的循環(huán)等待資源關(guān)系。
我上?說了產(chǎn)?死鎖的四個必要條件,為了避免死鎖,我們只要破壞產(chǎn)?死鎖的四個條件中的其
中?個就可以了?,F(xiàn)在我們來挨個分析?下: - 破壞互斥條件 :這個條件我們沒有辦法破壞,因?yàn)槲覀?鎖本來就是想讓他們互斥的(臨界
資源需要互斥訪問)。 - 破壞請求與保持條件 :?次性申請所有的資源。
- 破壞不剝奪條件 :占?部分資源的線程進(jìn)?步申請其他資源時,如果申請不到,可以主動釋
放它占有的資源。 - 破壞循環(huán)等待條件 :靠按序申請資源來預(yù)防。按某?順序申請資源,釋放資源則反序釋放。
破壞循環(huán)等待條件。
意向鎖
讀鎖
無鎖、偏向鎖、輕量級鎖、重量級鎖
偏向鎖、輕量級鎖、重量級鎖的升級以及區(qū)別_Java_stalary的博客-CSDN博客
監(jiān)視器鎖
經(jīng)典解釋監(jiān)視器和對象鎖Java馮立彬的博客-CSDN博客