解决方案 »

  1.   

    理解一个问题:
    private synchronized void  method
    synchronized (this)这两种加锁方式加锁的对象都是this对象,而不是类,如果你有两个对象,那么锁就加在不同的地方,看上去就像没有加锁一样
      

  2.   

    自己刚刚想到原因了,都使用的是this的锁,其中先拿到的那个永远未释放锁,所以另一个代码永远拿不到锁,就跑不起来了。
      

  3.   

    谢谢你的回答,不过我是刻意不new 2个Saler对象,所以保证了锁在同一个地方,呵呵,这是一段缺陷代码,不过我主要是用来验证问题。