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

问题描述 投票:2回答:1

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

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

foo();

?

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

c++ multithreading
1个回答
5
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.