gpt4 book ai didi

c - POSIX 名称信号量在进程退出后不释放

转载 作者:太空狗 更新时间:2023-10-29 11:42:58 25 4
gpt4 key购买 nike

我正在尝试使用 POSIX 命名信号量进行跨进程同步。我注意到在进程死亡或退出后,信号量仍然被系统打开。

在进程(打开它的)结束或退出后,是否有办法让它关闭/释放?

最佳答案

早期的讨论在这里:How do I recover a semaphore when the process that decremented it to zero crashes? .他们在那里讨论了几种可能的解决方案。

简而言之:

  • 没有。如果所属进程崩溃或被信号杀死,则不会释放 POSIX 信号量。等待过程将不得不永远等待。只要您坚持使用信号量,就无法解决这个问题。
  • 可以使用套接字或文件锁来实现进程间同步,进程退出时自动释放。我上面贴的题主最终选择了文件锁。参见 his answer .在评论区,他发布了一个链接到他讨论这个问题的博客。

其他可能有帮助的链接:

关于c - POSIX 名称信号量在进程退出后不释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com