1. 程式人生 > >類鎖和對象鎖,synchronized修飾static方法與非static方法的區別

類鎖和對象鎖,synchronized修飾static方法與非static方法的區別

ati nbsp 的區別 一個 靜態方法 範圍 之間 對象 ron

當synchronized修飾一個static方法時,多線程下,獲取的是類鎖(即Class本身,註意:不是實例),

作用範圍是整個靜態方法,作用的對象是這個類的所有對象。

當synchronized修飾一個非static方法時,多線程下,獲取的是對象鎖(即類的實例對象),

作用範圍是整個方法,作用對象 是調用該方法的對象

結論: 類鎖和對象鎖不同,它們之間不會產生互斥

類鎖和對象鎖,synchronized修飾static方法與非static方法的區別