Em algum momento eu tenho que usar std::threadpara acelerar meu aplicativo. Eu também sei join()espera até que um segmento seja concluído. Isso é fácil de entender, mas qual é a diferença entre ligar detach()e não ligar?
Eu pensei que detach(), sem , o método do thread funcionará usando um thread de forma independente.
Não desanexando:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Ligando com desanexação:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
stde boosttópicos têm detache joinmodelados de perto depois de threads POSIX.