Sometime I have to use std::thread
to speed up my application. I also know join()
waits until a thread completes. This is easy to understand, but what's the difference between calling detach()
and not calling it?
I thought that without detach()
, the thread's method will work using a thread independently.
Not detaching:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Calling with detaching:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
andboost
threads havedetach
andjoin
modeled closely after POSIX threads. – Exorcise