解决方案 »

  1.   

    你执行的结果是什么! System.out.println("1");和System.out.println("0");打印出来了吗!
      

  2.   

    那两个obj,搞成static就能模拟出来了。否则确实锁不上。
    爱学习的人遇上烂书
      

  3.   

    按楼主贴的代码来说,肯定死锁不了的!
    若楼主所看的博客的代码也确实如此,那估计是人家有可能是写漏了static了,这里的obj1 和obj2若设为static,这个代码就能死锁!
    质疑并实践,学到的就是自己的,赞!
      

  4.   

    Synchronized 是同一时刻只能有一个对象获得锁.....
    你new 了两个 run , run01 , run02 , 这两个对象是完全不相干的 也就是run01里面的obj 和run02里面的
    obj 根本就是两块内存.... 不相干的...  
    只要new一个ThreadDieSock对象 new两个Thread ... 把flag  =  -1-> static ....run 方法加一句 flag++;
    可以了吧