6
可以說我有以下類theadd joinable-join是否具有競爭條件?你如何解決它?
class A
{
public:
A()
{
my_thread=std::thread(std::bind(&A::foo, this));
}
~A()
{
if (my_thread.joinable())
{
my_thread.join();
}
}
private:
std::thread my_thread;
int foo();
};
基本上,如果我的線程被結合並加入通話,然後my_thread.join
將等待永遠之間完成?你如何解決這個問題?
請記住,線程對象可以被移動(它改變哪個線程對象是控制線程對象)。 –