java併發-synchronized關鍵字

synchronized關鍵字可以修飾普通方法,靜態方法,當修飾普通方法,鎖對象是當前對象,當修飾靜態方法,鎖對象是當前類的class

synchroinzed關鍵字可以使用同步代碼塊實現同步,此時可以指定鎖對象。

同步方法的實現方式

同步代碼塊的實現方式

鎖的升級

鎖升級是多個線程經過synchronized包裹的代碼片段或方法,鎖的類型的變化過程。 鎖升級只能是升級過程,沒有降級過程。

第一種狀態,無鎖狀態

普通方法調用,不帶同步代碼塊的代碼執行都是無鎖狀態,多個線程可同時執行這樣的方法和代碼

第二種狀態,偏向鎖狀態

當只有一個線程執行同步代碼塊,同步方法時,此時處於偏向鎖狀態,當這個線程進入同步方法或同步代碼塊之前。

第三種狀態,輕量級鎖狀態

第四種狀態,重量級鎖狀態

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