在C++中,是否有任何理由生成并立即加入线程,而不仅仅是直接调用函数?
In C++, is there any reason to spawn and immediately join a thread, instead of just calling the function directly?
C++,有人想写有什么理由吗
std::thread t(foo);
t.join();
对
foo();
?
在我看来,第一个选项只是无缘无故地使用更多资源来创建线程,但我错过了什么吗?
C++ 只是因为你想要新的线程本地状态,然后处理它。 可能是一个糟糕的解散。
在某些执行环境中,代码在主线程中的行为与在主线程外部的行为不同,这C++之外。
这可确保代码不会在主线程(通常是 UI)线程中运行,同时仍确保它是阻塞和同步的。
一个实际的倾向可能是运行一些任务,它以你不信任的方式弄乱了它自己的线程状态,也不知道如何完全逆转。 即第三方库。 这基本上是第一种情况,但您正在尝试将自己从无法重写的不良代码中拯救出来。
相关文章:
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- std::线程不是全局变量,但在到达创建它的函数的末尾时不会超出范围?
- 线程不是 std c++ 的成员
- 在C++中,是否有任何理由生成并立即加入线程,而不仅仅是直接调用函数?
- STD :: async的最大线程数量是多少,将异步创建和执行
- MINGW错误:“线程”不是“ STD”的成员
- 未解析的外部符号接收线程(这是_beginthread的入口点)
- 为什么我所有的 mpi 线程都是大师
- 在C++中为多个函数和事件重用一个线程(基本上是 POSIX 线程)
- C++提升线程,是以下合法内存泄漏
- 可以创建的最大线程数是多少?在多线程时需要考虑系统配置吗?
- 由于进程很多,pthread_create的错误返回代码是 35 错误,我用过pthread_exit应该杀死线程不是吗?
- 黑客攻击线程安全是"最佳"行动方案吗?
- 线程连接是如何工作的
- c++中,set_terminate对每个线程都是本地的
- 现在的C和C++编译器的线程保证是什么
- 多线程——希望是一项简单的任务
- 什么时候使用std::promise优于其他std::线程机制是一个好主意?
- 我如何知道线程是否是可接合的线程