我想要两个线程(让我们称它们为t1和t2)来等待另一个线程t0。让我们简化问题,并说t1和t2都是工作线程。我不认为下面的代码会正常工作。两个STL线程在可连接的第三个线程上等待?
/* ... code both t1 and t2 run ... */
if (t0.joinable()) {
/* race condition here */
t0.join();
}
这是可能的T1和T2为joinable
获得真正的,然后取其join
首胜,另一种可能出现segfaults —吧?那么正确的方法有两个线程在单个第三个线程上等待?
有没有办法做到这一点正好与STL的连接,或不T0需要设置某种(原子)完成标志或使用条件变量?
通过STL你是指'std'库? [STL](https://en.wikipedia.org/wiki/Standard_Template_Library)没有线程支持 – Yakk
他们可以自动选择一个线程加入第三个线程,并且选定线程在完成加入后通知另一个线程。 –