单个进程/线程被阻止尝试获取相同的互斥锁时的条件可以被称为“死锁”吗?
mutex_lock(& mutex) - 成功
...
mutex_lock(& mutex) - 被阻止,mutex未被释放
似乎“不可用资源”的条件不适用:这里只有单个进程/线程,因此不存在不可用资源的情况 保持并等待:这里只有一个进程,所以不要等待另一个进程释放所请求的资源
答案 0 :(得分:2)
是的,这被认为是,或者可能会导致死锁。
该术语未绑定到线程或进程 - 而是请求。
假设您的锁(mutex
)不可重入,并假设您的资源在发生变异时被锁定,并且从多个来源变更资源是错误的。当/如果您的单线程进程尝试在突变中启动数据的新突变并且锁定的非重入锁被请求锁定时会发生什么?死锁
'可能',因为您没有准确指定您正在处理的互斥锁的类型。
答案 1 :(得分:1)
不,这不是死锁。
如果同时存在四个条件,则会出现死锁 。
使用单个进程,永远无法满足循环等待条件,因此单个进程永远不会出现死锁