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

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

【问题讨论】:

    标签: windows synchronization ipc


    【解决方案1】:

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

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

    请问你为什么要这样做?

    【讨论】:

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