std::thread::detach() 与 Join:何时使用 Which
当使用 std::thread 进行性能优化时,了解分离线程和不分离线程之间的区别至关重要。 Join() 会暂停当前线程,直到目标线程完成,但是当调用 detach() 或省略 detach() 时会发生什么?
不分离:
在没有分离的情况下在 detach() 中,线程独立运行,直到调用 std::thread 的析构函数。如果此时线程尚未加入,则调用 std::terminate,导致程序终止。
分离:
调用 detach() 显式终止线程的当其方法完成时执行。这将线程从主程序的控制中释放出来,使其在后台完成其任务。但是,需要注意的是,线程终止时堆栈不会展开。
何时使用 Join 或 Detach:
使用加入:
使用分离:
重要注意事项:
以上是`std::thread::detach()` 与 `join()`:我什么时候应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!