【问题标题】:Windows API "Chess Timer" Sepmaphore EventWindows API“国际象棋计时器”信号量事件
【发布时间】:2009-03-01 02:03:35
【问题描述】:

有没有像国际象棋计时器一样工作的信号机,意思是;

线程 A 完成它的任务,循环回到顶部并调用信号量

这会触发线程 2,线程 2 继续执行其代码,循环回到顶部并调用信号量

这会触发线程 A...

所以信号量既是阻塞的又是信号量的。

我知道我可以只使用两个事件和 WaitForSingleObject,但我想知道是否有专门执行此操作的信号量?

关于这个主题,Event 有多“昂贵”,WaitForSingleObject() 在内存和 CPU 方面有多“昂贵”?

【问题讨论】:

    标签: c++ events semaphore


    【解决方案1】:

    嗯...你确定你需要两个线程吗?听起来您的协同程序不能同时运行,至少如果我理解隐喻的话。如果是这种情况,请将它们放在同一个线程中。

    while (true)
    {
        task1();
        task2();
    }
    

    【讨论】:

    • 无需冗长的解释,它们不能同时运行。
    猜你喜欢
    • 2012-03-25
    • 2022-06-17
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2013-05-24
    • 2019-10-01
    相关资源
    最近更新 更多