死锁四个必要条件:
1。互斥条件
2。请求与保持条件
3。不剥夺条件
4。循环等待条件如果发生死锁,这四个条件同时成立;但是在四个条件同时满足的情况下,也有可能不是死锁?对吗?
大侠们说明一下,谢谢!!

解决方案 »

  1.   

    http://ningbo-seo.iteye.com/blog/387706  找了哈,这个地址对充要条件进行了说明,呵呵,也就是如下:
    假设A是条件,B是结论 由A可以推出B~由B可以推出A~~则A是B的充要条件(充分且必要条件) 
    由A可以推出B~由B不可以推出A~~则A是B的充分不必要条件 由A不可以推出B~由B可以推出A~~则A是B的必要不充分条件 由A不可以推出B~由B不可以推出A~~则A是B的不充分不必要条件 简单一点就是:由条件能推出结论,但由结论推不出这个条件,这个条件就是充分条件 
    如果能由结论推出 条件,但由条件推不出结论。此条件为必要条件 
    如果既能由结论推出条件,又能有条件 推出结论。此条件为充要条件 
      

  2.   

    死锁问题:
    多线程:两个线程为例:
    第一个线程(Thread1),锁住了一个对象(Object1),另一个线程(Thread2)也同时锁住了另一个对象(Object2)
    这时,第一个线程(Thread1),经过一段时间操作需要Object2来继续执行,但是Object2被Thread2锁定,不能为
    Thread1所用,这时Thread2,经过一段时间需要使用Object1来继续执行,但是Object1被Thread1锁定,不能为
    Thread2所用.这样就形成了资源互锁,出现了死锁状态;双方互相把持对方想要的资源不释放;synchronized嵌套容易造成死锁的原因,相互持有资源不释放;