Können sagen, ich die folgende KlasseKann the thead joinable-join eine Racebedingung haben? wie kommst du rum?
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();
};
Grundsätzlich haben, wenn mein Thread zwischen dem joinable vervollständigt und Anrufe kommen, dann wird my_thread.join
ewig warten? Wie kommst du dazu?
Beachten Sie, dass Thread-Objekte verschoben werden können (wodurch sich ändert, welches Thread-Objekt das steuernde Thread-Objekt ist). –