在自學多線程同步的時候遇見很多坑,通過解釋遇見的問題,我對synchronized的理解是:synchronized會修飾一段代碼,并鎖定一個對象。當一個線程運行被synchronized修飾的代碼的時候,它就會鎖定小括號內的對象(當修飾方法的時候小括號省略,修飾的對象默認為this),被鎖定的對象一旦被一個線程訪問,那么在這個線程結束對被鎖定對象的訪問之前,是不允許其他線程訪問被鎖定對象的。關于鎖定對象要分兩種情況:1、synchronized在鎖定的對象的類內部(這時候鎖定的對象是this),這種情況鎖定的并不是對象的全部,鎖定的僅是被synchronized修飾的部分,對于非被修飾的部分是不會鎖定的。2、在外部:這種時候鎖定的就是對象的全部內容了。還望大神們指點糾正?。。?
添加回答
舉報
0/150
提交
取消