dav*_*oat 2 c++ multithreading
在C ++中,有人有什么理由要写吗?
std::thread t(foo);
t.join();
Run Code Online (Sandbox Code Playgroud)
与
foo();
Run Code Online (Sandbox Code Playgroud)
?
在我看来,第一个选择只是无缘无故地使用了更多资源来创建线程,但是我错过了什么吗?
在C ++中,仅是因为您想要新的线程本地状态,然后处置它。可能是糟糕的设计。
在C ++适当的外部,在某些执行环境中,代码在主线程中的行为与其在外部的行为不同。
这样可以确保代码不会在通常是UI的主线程中运行,同时仍可以确保其阻塞和同步。
一个实际的弯腰可能正在运行某些任务,该任务以您不信任的方式搞乱了自己的线程状态,也不知道如何完全逆转。即,第三方库。基本上这是第一种情况,但是您尝试将自己从无法重写的错误代码中拯救出来。
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |