首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >信号量机制会导致死锁吗?

信号量机制会导致死锁吗?
EN

Stack Overflow用户
提问于 2014-03-18 15:09:40
回答 1查看 2.6K关注 0票数 0

由于信号量机制使用两个队列:

  • 块队列
  • 就绪队列

在两种可能的情况下:

如果信号量的信号是负的(相当大),

2提供所需资源的基本过程被阻止,是否会出现死锁?

例如,我们在块队列中有三个进程,但是信号是负5 (s = -5),这些进程会永远阻塞在队列中吗?

在第二种情况下,如果process P1、P2、P3依赖于P4的结果,而P4在队列中被阻塞(这可能吗?),那么我们是否无法通过semSignal()来增加信号量,从而指示死锁?

EN

Stack Overflow用户

回答已采纳

发布于 2014-03-20 13:58:12

例如,我们在块队列中有三个进程,但是信号是负5 (s = -5),这些进程会永远阻塞在队列中吗?

如果您接受信号量计数的概念变得消极,即。负值表示等待线程的数量,如果只有三个线程等待,计数不能变为-5。如果发生这种情况,您的信号量实现将被轮询。

在第二种情况下,如果process P1、P2、P3依赖于P4的结果,而P4在队列中被阻塞(这可能吗?),那么我们是否无法通过semSignal()来增加信号量,从而指示死锁?

我不明白这种情况。它并不描述死锁。如果P4被卡在某个队列上,这就是为什么四个线程都被阻塞而不能向前推进的原因,那么首先您应该知道为什么P4被卡住了。

如果P4正在等待来自p1、p2和/或p3的信号,则可能出现死锁。

在我所能想到的任何情况下,插入额外的信号量单元,试图摆脱僵局,都是对泄漏的核反应堆的一种束带。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22483386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档