Java各種各樣的鎖

本人Java經驗不是很多,在開發的過程中,經常會聽到悲觀鎖樂觀鎖 可重入鎖 遞歸鎖 共享鎖獨佔鎖 偏向鎖 自旋鎖 是不是被各種各樣的鎖概念搞的暈頭轉向

悲觀鎖: 悲觀鎖指的是數據對外界的修改採取保守策略,它認爲線程很容易會把數據修改掉,因此在整個數據被修改的過程中都會採取鎖定狀態,直到一個線程使用完,其他線程纔可以繼續使用。

package learn.cn.多線程;

/**
 * create by liuzhiwei on 2020/4/2
 */
public class 悲觀鎖 {
    public static void main(String[] args) {
        synchronized (悲觀鎖.class){
            System.out.println("lock");
        }
    }
}

synchronized修飾的代碼塊,在執行之前先使用monitorenter指令加鎖,然後在執行結束之後再使用monitorexit指令釋放鎖資源,在整個執行期間此代碼都是鎖定的狀態,這就是典型悲觀鎖的實現流程。

樂觀鎖:

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