关于进程死锁的一个简单直白的理解。
比如说。
我要完成一个任务A。
你要完成一个任务B。
我手上有工具1,3
你手上有工具2
但是我需要工具1,2,3才能完成任务A。
你需要工具1,2才能完成任务B。
我在等着你把任务B完成,把工具2给我。
你在等着我把任务A完成,把工具1给你。
就这样形成了一个循环等待,并且一直不会结束,这样的话,工具,1,2,3都被无限期占用了。
而这种情况如果有新的人进来,需要工具1,2,3,他永远也得不到,但是他可能得到了其他资源,比如工具4。
那么工具4也被无限期占用了。
一直这样恶性循环下去。资源全都被锁死。
那么银行家算法是什么意思呢。
就是一个资源评估。(类似于银行里面对于贷款需要的一个资产评估和抵押吧)
在我要准备任务A之前,
先判断一下,我如果得到现在有的空闲资源:工具1和工具3.
我能不能完成任务A。
评估结果是不能。
那么就让我进入等待,等待其他的资源的释放(也就是工具2释放)。
那么我就等待,等待任务B被人完成了,工具2释放了。
那么我就准备就绪了,
我需要的工具都有了,可以进入任务A的工作了 。