我无法弄清两种死锁条件之间的区别。持有和等待看起来像是循环等待的一个子集。
我无法弄清两种死锁条件之间的区别。持有和等待看起来像是循环等待的一个子集。
持有并等待
和循环等待
是死锁发生时遇到的条件。
这意味着,如果这两个条件中的任何一个不满足,就不会出现死锁。
持有并等待条件说明进程正在持有可能(或可能不)被其他进程需要的资源。关键点在于该进程正在持有这些资源,并且在获得所请求的资源(其他进程持有的资源)之前将不会释放它们。
循环等待条件说明存在一系列进程,每个进程都在等待另一个进程持有的资源。在这种情况下,不一定是进程持有其他进程请求的资源,而是所有进程都在等待另一个进程持有的资源。
有关更多信息,请参见以下文章:
http://www.cs.yale.edu/homes/aspnes/pinewiki/Deadlock.html http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html
Reference: http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/deadlockCondition.htm