【发布时间】:2011-12-01 17:36:31
【问题描述】:
虽然银行动态分配资源以确保系统始终安全,但如果其中一个线程没有放弃它已分配的资源(由于某些无限循环或其他原因)导致 银行无法满足其他线程的需求?这会被称为死锁吗?
【问题讨论】:
标签: operating-system bankers-algorithm
虽然银行动态分配资源以确保系统始终安全,但如果其中一个线程没有放弃它已分配的资源(由于某些无限循环或其他原因)导致 银行无法满足其他线程的需求?这会被称为死锁吗?
【问题讨论】:
标签: operating-system bankers-algorithm
在银行家算法的正式论证中,假设所有程序在有限的时间后返回它们的资源,所以从技术上讲,这种情况不会发生(至少,在问题所在的数学完美世界中不会发生)描述;-)。
但是,它仍然不会被视为死锁——进入无限循环的线程没有等待任何资源,它只是坐在那里没有进展。这种类型的问题只是一个......挂起。几种可能的挂起类型是starvation and livelock,尽管在最简单的情况下,如果线程只是进入睡眠状态/进入一个什么都不做的无限循环,我知道没有正式的术语来描述它。
【讨论】: