posts - 29, comments - 0, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

线程死锁

Posted on 2007-05-28 15:49 change 阅读(976) 评论(0)  编辑  收藏

线程死锁条件:

1:互斥条件 ,即资源是不能够被共享的。

2:至少有一个进程在使用一个资源却在等待另外一个线程所持有的一个资源

3:资源部能够被进程抢占。

4 :必须有循环的等待

那么要解除死锁,只要让这几个条件中的一个不成立就可以了。例如:

哲学家问题,如果每个哲学家都是先 取左边的筷子,在取右边的筷子,那么很有可能就会出现死锁了,那么我们可以让最后的一个哲学家是先取右边的筷子,然后再取左边的筷子,那么就破坏了循环等待的原则,那么死锁自然也就不会成立了 。当然线程也可以一次获得所有的所需资源来实现了。