java线程死锁例子_帮忙解释和理解一下Java线程死锁的例子

代码: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的一个线程死锁的例子,哪位高手帮忙理解一下哪里体现出来的死锁。。。分析一下代码,非常感谢!

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值