我有一個簡單的線程問題 - 以下應如何同步?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