IT科技

當前位置 /首頁/IT科技 > /列表

synchronized原理

品牌型號:聯想小新Pro13/系統版本:windows10

synchronized由方法調用指令讀取運行時常量池中方法的 ACC_SYNCHRONIZED 標誌來隱式實現的,Java 虛擬機中的同步(Synchronization)基於進入和退出管程(Monitor)對象實現, 無論是有明確的 monitorenter 和 monitorexit 指令,即同步代碼塊的顯式同步還是隱式同步都是同理。

synchronized是JVM內置鎖,通過內部對象Monitor(監視器鎖)來實現,基於進入與退出monitor對象來實現方法與代碼塊的同步,監視器鎖的實現,最終依賴操作系統的Mutex lock(互斥鎖)來實現。

synchronized關鍵字3種應用方式

修飾實例方法,作用於當前實例加鎖,進入同步代碼前要獲得當前實例的鎖

修飾靜態方法,作用於當前類對象加鎖,進入同步代碼前要獲得當前類對象的鎖

修飾代碼塊,指定加鎖對象,對給定對象加鎖,進入同步代碼庫前要獲得給定對象的鎖。 

 

synchronized原理

TAG標籤:synchronized #