0
我有一個C++程序用兩種方法測試類:等待過去事件
void IntegrationTestBase::wait_test_end() {
unique_lock<mutex> lock(m_mutex);
m_cond.wait(lock);
}
void IntegrationTestBase::notify_test_end() {
XN_LOGF_ITEST_BASE(INFO, "Test end");
m_cond.notify_all();
m_cond
是一個條件變量,m_mutex
是互斥。
該流程是一個未知數量的線程可能wait_test_end
,然後一些其他線程可能notify_test_end
,他們將停止等待。
問題是notify_test_end
之後的一些其他線程可能會wait_test_end
,他們將無法等待等待。
我該如何應對?
我發現[這篇文章](http://stackoverflow.com/q/21757124/1460794)在尋找一個好例子時很有用。 – wally