private int color;
public int getcolor()
//終止於這步
public synchroized void setcolor(int color)
}
public class testdeadlock implements runnable
public void run() catch (interruptedexception e)
o2.setcolor(8); //發生死鎖
system.out.println("2:" + o2.getcolor());}}
if(flag == 0)}}
}}
,則輸出如下:
1:32:8t2 succeed
當該方法前有synchronized
,則構成了死鎖。
由此可見:
(1)鎖物件本身是可以修改的。
(2)當給乙個方法前加上synchronized
,則相當於synchronized
(該方法所屬的物件)。
(3)synchronized(鎖)
該語句會判斷這個鎖是否在某處已用,如果用,那麼就阻塞當前執行緒。
Java類鎖和物件鎖實踐
一 前言 1.類鎖 在 中的方法上加了static和synchronized的鎖,或者synchronized class 的 段,如下文中的increament 2.物件鎖 在 中的方法上加了synchronized的鎖,或者synchronized this 的 段,如下文中的synonmeth...
java的物件鎖和類鎖
類鎖 在 中的方法上加了static和synchronized的鎖,或者synchronized class 物件鎖 在 中的方法上加了synchronized的鎖,或者synchronized this 的 段 方法鎖和私有鎖 都屬於物件鎖 私有鎖 在類內部宣告乙個私有屬性如private obj...
java測試父子類中的鎖物件
本來想測試一下子類中呼叫父類方法,如果都是同步方法,鎖物件是否相同。後來還發現很多理解不夠深入的地方,一起寫 測試了一下。測試鎖物件 class father synchronized void doy override public string tostring public class son...