在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?相关的知识,希望对你有一定的参考价值。

在C ++中,是否有人想要写

std::thread t(foo);
t.join();

foo();

?

在我看来,第一个选项只是使用更多的资源来无缘无故地创建一个线程,但我错过了什么?

答案

在C ++中,只是因为你想要新的新线程本地状态,然后处理它。可能是一个糟糕的desogn。

在C ++之外,在某些执行环境中,代码在主线程中的行为与在其外部的行为不同。

这可以确保代码不会在主要的UI线程中运行,同时仍然确保它是阻塞和同步的。

实际的弯曲可能正在运行一些任务,它以你不信任的方式混淆自己的线程状态,也不知道如何完全反转。即,第三方图书馆。这基本上是第一种情况,但是你试图从不能重写的错误代码中解脱出来。

以上是关于在C ++中,是否有任何理由产生并立即加入一个线程,而不是直接调用该函数?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一个 R 函数可以测试多个指定对象的存在?

是否有可能在Java中拥有无限循环的Thread和JFrame?

在多线程C ++应用程序中,我是否需要一个互斥锁来保护一个简单的布尔值?

如何在C中检查十六进制数(%x)是否以某个数字开头?

WCF 暂停调用

是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]