下面的try已经执行了,但是interrupt方法只是会将正在处理wait状态的线程唤醒的。而tr1、tr2只是处于等待锁状态,所以不会被唤醒。也就是还不知道线程被中断了

解决方案 »

  1.   

    stop是不建议调用的方法在写代码的过程中应该尽量考虑清楚逻辑,一定要避免出现死锁的情况
      

  2.   

    用stop()都不可以..只能用exit()..囧
      

  3.   

    这个程序产生死锁的可能性非常大..呵呵你的两个线程t1,t2
    t1.flag = 1;也就是说这个会执行if(flag == 1) 里面的synchronized(o1)你先锁住o1再去锁住o2t2.flag = 0;也就是说这个会执行if(flag == 0) 里面的synchronized(o1)你先锁住o2再去锁住o1两个同时运行..假如t1获取了o1的锁,,,你的t2就惨了...在那里等o1的锁...你跑跑看...锁在那里走不动了....