我有一個異步執行任務的線程池。但是在繼續之前我需要等待某個任務完成(不允許在當前線程中運行任務,該任務必須由工作線程運行)。C++/boost:如何發出異步任務完成信號?
使用C++ 11或Boost實現這個最簡單的方法是什麼?
pool.enqueue([]() {
std::this_thread::sleep_for(2s); // task 1
// notify task 1 completion???
std::this_thread::sleep_for(2s); // task 2
});
// wait until task 1 is complete???
但是這樣做與線程池是死鎖的祕訣 – sehe