Иногда я должен использовать 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 нитей.