死鎖是一種靜態狀態。
1.首先死鎖示例
public class deadlockdemo catch (interruptedexception e)
synchronized (lockb) }}
};athread.start();
} private static void startthreadb() catch (interruptedexception e)
synchronized (locka) }}
};bthread.start();
} public static void main(string args)
}
2.輸出結果:
3.jstack檢視,可以先通過jps獲取執行緒的pid,然後使用jstack pid列印執行緒堆疊資訊
從以上資訊可以看到,thead-1持有 <0x00000000e05bff68>物件a的鎖,等待鎖定 <0x00000000e05bff58>物件b,而此時物件b已經被thread-0鎖定;thread-0持有物件b的鎖,等待鎖定物件a,造成死鎖!
java執行緒(三)死鎖例子
public class testthread implements runnable catch interruptedexception e synchronized o2 if flag 0 catch interruptedexception e synchronized o1 public...
Linux 死鎖例子
死鎖是在編寫多執行緒併發時候所需要考慮的問題,在多執行緒軟體使用多個互斥鎖來保護共享資源時,如果設計不合理會出現多個鎖相互巢狀並且都在等待彼此的鎖被釋放,這樣就會出現死鎖現象,讓系統掛起一直相互等待下去。下面給個例子說明這一現象 標頭檔案 include include include includ...
死鎖的例子
description program name date author yeeku.h.lee kongyeeku 163.com version 1.0 class a catch interruptedexception ex system.out.println 當前執行緒名 thread....