En algún momento tengo que usar std::threadpara acelerar mi aplicación. También sé que join()espera hasta que se complete un hilo. Esto es fácil de entender, pero ¿cuál es la diferencia entre llamar detach()y no llamar?
Pensé que sin detach(), el método del hilo funcionará usando un hilo de forma independiente.
No se separa:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Llamando con desprendimiento:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
stdy boostlas discusiones han detachy joinmodelada de cerca después de los hilos POSIX.