0

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

线程 A 完成其任务,循环回到顶部并调用 Semaphore

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

这会触发线程 A...

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

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

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

4

1 回答 1

5

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

while (true)
{
    task1();
    task2();
}
于 2009-03-01T02:20:36.353 回答