死锁

发生死锁,必须同时满足以下四个条件:

  1. 互斥条件:任务使用的资源中至少有一个是不能共享的。
  2. 至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源。
  3. 资源不能被任务抢占,任务必须把资源释放当做普通事件。
  4. 必须有循环等待,这时,一个任务等待其他任务所持有的资源,后者又在等待另一个任务所持有的资源,这样一直下去,直到有一个任务在等待第一个任务所持有的资源,使得大家都被锁住。

打破死锁:

因为要发生死锁,这些条件必须要全部同时满足;所以要防止死锁的话,只需破坏其中一个即可。最容易的方法为破坏第四个条件。

posted @ 2016-11-23 20:06  sunshinezhgx  阅读(115)  评论(0)    收藏  举报