有没有与信号量相反的东西

Posted

技术标签:

【中文标题】有没有与信号量相反的东西【英文标题】:Is there something opposite to Semaphore 【发布时间】:2011-07-02 22:01:51 【问题描述】:

有没有和Semaphore相反的东西?我正在寻找与系统范围内的进程无关的东西,我可以用它来 count 有多少线程正在使用资源,而不是 limit 有多少线程正在使用资源资源。 还是我应该考虑使用最大计数相当高的信号量?

【问题讨论】:

【参考方案1】:

信号量可以按任何顺序释放或获取。我建议您在线程开始使用资源时简单地释放信号量,并在使用资源完成时获取它。

这是假设您需要跨进程通信。如果您不这样做,请务必使用计数器变量。

请问你为什么要这样做?

【讨论】:

在xxm.sf.net 项目中,加载 xxm 库的 IIS 处理程序无法完全卸载库以在多个 w3wp.exe 加载/锁定 xxl 时自动更新它。所以我需要某种 IPC,以免限制 1 个工作进程。 在这种情况下,我描述的信号量会起作用。在更新程序中,尝试获取信号量。如果您不能不阻止,则可以更新文件。请注意,您可能还需要一个互斥锁来防止在更新期间加载库。 我真正想要的是在某种同步调用上对库的新调用“停止”。如果你这样说,我不能在那个信号量上使用 WaitForSingleObject。您对互斥锁的看法是正确的,但我可能还需要一两个事件。

以上是关于有没有与信号量相反的东西的主要内容,如果未能解决你的问题,请参考以下文章

UNIX:SIG_IGN 有相反的含义吗? [复制]

单端-差分信号

Linux 上以相反顺序接收的实时信号

霍尔信号编码器信号与电机转向

POSIX 信号量

linuxbingc(进程信号)