在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?相关的知识,希望对你有一定的参考价值。
在C ++中,是否有人想要写
std::thread t(foo);
t.join();
与
foo();
?
在我看来,第一个选项只是使用更多的资源来无缘无故地创建一个线程,但我错过了什么?
答案
在C ++中,只是因为你想要新的新线程本地状态,然后处理它。可能是一个糟糕的desogn。
在C ++之外,在某些执行环境中,代码在主线程中的行为与在其外部的行为不同。
这可以确保代码不会在主要的UI线程中运行,同时仍然确保它是阻塞和同步的。
实际的弯曲可能正在运行一些任务,它以你不信任的方式混淆自己的线程状态,也不知道如何完全反转。即,第三方图书馆。这基本上是第一种情况,但是你试图从不能重写的错误代码中解脱出来。
以上是关于在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?的主要内容,如果未能解决你的问题,请参考以下文章
是否有可能在Java中拥有无限循环的Thread和JFrame?