Czasami muszę użyć, std::thread
aby przyspieszyć moją aplikację. Wiem też, że join()
czeka, aż wątek się zakończy. Łatwo to zrozumieć, ale jaka jest różnica między dzwonieniem detach()
a nie dzwonieniem?
Pomyślałem, że bez detach()
wątku metoda wątku będzie działać niezależnie od wątku.
Nie odłączanie:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Dzwonienie z odłączaniem:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
i boost
wątki mają detach
i są join
wzorowane na wątkach POSIX.