有时我必须使用它std::thread
来加速我的应用程序。我也知道join()
等到线程完成。这很容易理解,但是调用detach()
和不调用有什么区别?
我以为如果没有detach()
,线程的方法将独立使用线程工作。
不分离:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
调用与分离:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
和boost
线程都detach
和join
POSIX线程之后蓝本。