本文共 1377 字,大约阅读时间需要 4 分钟。
死锁实例
/**
* 死锁的原因就是同步的嵌套
*/
public class DeadLockTest { public static void main(String[] args) { Thread t1 = new Thread(new PrintRunnable(true)); Thread t2 = new Thread(new PrintRunnable(false)); t1.start(); t2.start(); }}class MyLock { static Object locka = new Object(); static Object lockb = new Object();}class PrintRunnable implements Runnable { private boolean flag; PrintRunnable(boolean flag) { this.flag = flag; } public void run() { if (flag) { while (true) { synchronized (MyLock.locka) { System.out.println(Thread.currentThread().getName() + "...if locka "); synchronized (MyLock.lockb) { System.out.println(Thread.currentThread().getName() + "..if lockb"); } } } } else { while (true) { synchronized (MyLock.lockb) { System.out.println(Thread.currentThread().getName() + "..else lockb"); synchronized (MyLock.locka) { System.out.println(Thread.currentThread().getName() + ".....else locka"); } } } } }}
转载地址:http://khqbi.baihongyu.com/