死锁

死锁产生的条件

  • 互斥条件:指线程对已经获取到的资源进行排它性使用,即该资源同时只由一个线程占用,若是此时还有其余线程请求获取该资源,则请求者只能等待,直至占有资源的线程释放该资源。
  • 请求并持有条件:指一个线程已经持有了至少一个资源,但又提出了新的资源请求,而新资源已经被其余线程占有,因此当前线程被阻塞,但阻塞的的同事并不释放已经获取的资源。
  • 不可剥夺条件:指线程获取到的资源在本身使用完以前不能被其余线程抢占,只有本身使用完毕才由本身释放该资源。
  • 环路等待条件:指在发生死锁时,必然存在一个线程—资源的环形链,即线程集合{T0, T1,T2, ..., Tn} 中的T0正在等待一个T1占用的资源,T2在等待T2占用的资源, Tn正在等待T0占用的资源。

避免死锁

经过破坏资源的请求并持有条件和环路等条件。线程

相关文章
相关标签/搜索