多線程Syschronized

場景(線程不安全)
需求(解決線程安全問題)
解決方案(Syschronized)
應用(Syschronized的幾種使用:
實例鎖(等同於同步代碼塊的this),
靜態方法鎖(等同同步代碼塊的object.class),
代碼塊

原理:

偏向鎖(cas判斷對象頭是否爲該線程)->輕量級鎖(自旋,若自旋n次後還是失敗,或自適應自旋後失敗,升級鎖)->重量級鎖(mutex)

重量級鎖執行流程

在這裏插入圖片描述
對象頭存儲信息:
在這裏插入圖片描述

備註:Syschronized 非公平鎖,所以它的重量級鎖的同步隊列不是FIFO,而是通常隨機喚醒一個。

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