文章目录
死锁
- 死锁
- 死锁的特征
- 死锁的处理方法
-
- 死锁预防
- 死锁避免
-
- 安全状态
- 资源分配图算法
- 银行家算法
- 死锁检测
- 死锁恢复
开发多线程应用的程序必须特别关注死锁问题,因为多个线程可能因为竞争共享资源而容易产生死锁。
当一组进程内的每个进程都在等待一个事件,而这个事件只能由这一组进程的另一个进程引起,那么这组进程就处于死锁状态。 这里关注的主要事件是资源的获取和释放。 资源可以是物理资源(打印机、磁带驱动器、内存空间、CPU周期等)或逻辑资源(信号量、互斥锁、文件等)。 IPC等也可能导致死锁。 死锁未必仅局限于同一种资源,可能涉及不同的资源类型。
多线程应用的开发人员必须始终警惕可能发生的死锁。在使用加锁工具以避免竞争条件时,要特别注意如何获得和释放锁,否则就可能会死锁。
死锁的特征发生死锁时,进程永远不能完成,系