En algún momento tengo que usar std::thread
para 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
}
std
y boost
las discusiones han detach
y join
modelada de cerca después de los hilos POSIX.