本文主要是介绍银行家算法理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明
对基本的银行家算法流进行简化,梳理出关键步骤,希望可以让学习该算法的同志少走一点弯路。
算法概述
判断要不要将资源分配给当前发起请求的线程。
其实算法核心逻辑在于,借了钱给张三和李四等人,张三要借的少,李四要借的多,所以先借给张三,然后可以把张三的钱收回来再去满足李四的借款要求,再把李四的钱收回来。
规则说明
借给进程的资源必须满足它的最大需求,没达到之前无法从其身上回收它已经持有的任何资源。
案例模型
结构说明
上表中列分别对应着:进程、进程总计最多需要资源、进程已经分得、系统剩余资源。最多需要是个集合,为了简化模型,假定每个进程只需要一种资源「假定此资源为人民币,单位(元)」,固集合只有一个元素。
以张三为例:
张三,最多还需要10元。已经分到4元。系统还剩11元。
这篇关于银行家算法理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!