Powiedzmy mam następujące klasyCzy thead connect-join może mieć warunki wyścigu? jak sobie z tym radzisz?
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();
};
Zasadniczo, jeśli mój wątek zakończy między PŁYCIE i dołącz do rozmowy, a następnie my_thread.join
będzie czekać w nieskończoność? Jak sobie z tym poradzisz?
Pamiętając o tym, że można przenosić obiekty wątków (co zmienia obiekt, który jest kontrolującym obiektem wątku). –