生活随笔
收集整理的這篇文章主要介紹了
死锁编码及定位分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
死鎖編碼及定位分析
HoldThread.java
import java.util.concurrent.TimeUnit;class HoldThread implements Runnable {private String lockA;private String lockB;public HoldThread(String lockA, String lockB) {this.lockA = lockA;this.lockB = lockB;}@Overridepublic void run() {synchronized (lockA) {System.out.println(Thread.currentThread().getName() + "\t 自己持有鎖" + lockA + "嘗試獲得" + lockB);try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}synchronized (lockB) {System.out.println(Thread.currentThread().getName() + "\t 自己持有鎖" + lockB + "嘗試獲得" + lockA);}}}
}
/*** Description:* 死鎖是指兩個或者以上的進程在執行過程中,* 因爭奪資源而造成的一種相互等待的現象,* 若無外力干涉那他們都將無法推進下去**/
public class DeadLockDemo {public static void main(String[] args) {String lockA = "lockA";String lockB = "lockB";new Thread(new HoldThread(lockA, lockB), "threadAAA").start();new Thread(new HoldThread(lockB, lockA), "threadBBB").start();}
}
總結
以上是生活随笔為你收集整理的死锁编码及定位分析的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。