A volte devo usare std::thread
per velocizzare la mia applicazione. So anche che join()
aspetta che un thread sia completato. È facile da capire, ma qual è la differenza tra chiamare detach()
e non chiamarlo?
Ho pensato che senza detach()
, il metodo del thread funzionerà usando un thread in modo indipendente.
Non staccare:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Chiamata con distacco:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
e boost
thread hanno detach
e join
modellato da vicino i thread POSIX.