什么是死锁? 死锁出现的条件是什么? 如何避免?

534 阅读1分钟

死锁是计算机执行程序在执行过程中, 两个或多个进程, 因为互相占用了对方所需的资源, 而出现的永久等待.

满足以下条件时, 死锁可能出现

[ 1 ] 资源无法共享

[ 2 ] 进程接受了某些资源后, 还需请求其他资源.

[ 3 ] 资源无法强制回收

为了避免条件 [ 1 ] [ 2 ] , 而设计出来方案, 称为「死锁避免」.

具体做法是, 把「无法共享的资源」转变为「可共享资源」. 要求进程一次请求完, 所有需要的资源.

为了避免条件 [ 3 ] , 而设计出来方案, 称为「死锁检测」.

具体做法是, 强制回收一些已经分配出去的资源.

死锁

死锁

参考

[ 1 ] 《计算机科学概论 (第 12 版)》P103 - P104

[ 2 ] 百度百科, 死锁