Иногда я должен использовать 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
}
stdи boostнити были detachи joinмоделируется близко после POSIX нитей.