死锁有4个先决条件,对照下看是否有。

解决方案 »

  1.   

    1.第一个绝对不会死锁的,这点是 锁的 可重入性,即 一个线程 持有锁A,的过程中,如果还 需要锁A,那么会直接获取。
    2.  下面的这两个程序都会 死锁的,不知道 你说的情况不一样 哪里不一样了
      

  2.   


    下面第二个程序,我改用了非静态属性的锁,然后用死循环转了好几次,都没有出现死锁的情况,而上面的用的静态属性的锁马上死锁了。这是为什么呢?
      

  3.   

    应该不会,但是这样会出现i<0的情况,因为2个可能都会判断i>0,虽然2个进入代码之后要分别同步锁执行,但是仍然都会执行.