我有一个简单的线程问题 - 以下应如何同步?C++ - 基本线程问题
我有一个主线程和一个辅助线程,它只能做一次某事 - 更多一次。
基本上是:
二级螺纹:
{
Do_Something_Once();
while (not_important_condition) {
Do_Something_Inside_Loop();
}
}
我想除非Do_Something_Once
操作完成后暂停我的主线程,现在我用一个简单的布尔值is_something_once_done = false;
指示如果行动完成。
因此,我主线程的代码如下所示:
{
Launch_Secondary_Thread();
while (!is_something_once_done) {
boost::this_thread::sleep(milliseconds(25));
}
}
这显然是不进行这类同步的最佳途径。
任何替代品(更好,如果boost::thread
- 供电)?
谢谢
注意:没有基本的线程问题。有11种类型的人:1)认为他们可以使用线程编程的人10)知道它的人很难但认为他们理解线程11)知道它的人很难并理解线程之间的相互作用超出了他们(这些是唯一的人是正确的) – 2010-09-07 17:16:29
@Martin:是的,嗨! – 2010-09-07 22:22:30