gpt4 book ai didi

c++ - 我们可以称程序中的潜在障碍吗

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:26 25 4
gpt4 key购买 nike

我希望我的线程在屏障点停止,但我只想在需要屏障时才停止。例如,在某个计时器间隔后,我希望所有线程都形成一个屏障。有没有办法设置潜在的障碍点?例如在每个函数的开始。我想要这样的东西。

void some_function()
{
potentially_barrier_wait;
......
}

所以我希望 potentially_barrier_wait 仅在需要时调用屏障,否则 potentially_barrier_wait 什么都不做。这件事情能否圆满实现?这是否也适用于已经存在障碍的程序,还是会与它们竞争。

最佳答案

取决于你所说的障碍是什么意思......如果你指的是简单的同步,你可以这样做:

在 Windows 上,创建事件 CreateEvent( 0, false, 0, 0 )。在您的线程中,对其执行 WaitForSingleObject。在你的“控制”线程中,设置事件让它通过你的障碍。您可以使用它进行预设和自动释放等操作。

在 Linux 上,类似但您可以使用 pthread_cond_timedwait 作为屏障,并使用 pthread_cond_signal 向其发出信号。

关于c++ - 我们可以称程序中的潜在障碍吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411887/

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