網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

synchronized原理

欄目: IT科技 / 發佈於: / 人氣:1.94W
品牌型號:聯想小新Pro13/系統版本:windows10

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

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

synchronized關鍵字3種應用方式

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

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

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

 

synchronized原理

Tags:synchronized