Czasami muszę użyć, std::threadaby 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
}
stdi boostwątki mają detachi są joinwzorowane na wątkach POSIX.