Когда-то мне нужно использовать std::thread
для ускорения моего приложения. Я также знаю, что join()
ждет, пока поток не завершится. Это легко понять, но какая разница между вызовом detach()
и не вызовом?
Я думал, что без detach()
метод потока будет работать с использованием потока независимо.
Не отсоединяется:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Вызов с отсоединением:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}