代码:publicclassTestDeadLockimplementsRunnable{ publicintflag=1; staticObjecto1=newObject(),o2=newObject(); publicvoidrun(){ System.out.println...
代码:public class TestDeadLock implements Runnable{ public int flag = 1; static Object o1 = new Object(),o2 = new Object(); public void run(){ System.out.println("flag = "+flag); if(flag == 1){ synchronized(o1){//产生一个同步锁 try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o2){ System.out.println("1"); } } } if(flag == 0){ synchronized(o2){ try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o1){ System.out.println("0"); } } } } public static void main(String[] args){ TestDeadLock td1 = new TestDeadLock(); TestDeadLock td2 = new TestDeadLock(); td1.flag = 1; td2.flag = 0; Thread t1 = new Thread(td1); Thread t2 = new Thread(td2); t1.start(); t2.start(); }};上边这部分代码是Java的一个线程死锁的例子,哪位高手帮忙理解一下哪里体现出来的死锁。。。分析一下代码,非常感谢!
展开