Qua*_*arl 7 c++ multithreading
我想学习C++中的多线程,但我不确定哪种类型最有用.我看过教程的是:
(我确信可能还有更多.)
每个人的主要特征是什么,它们最适合用于什么?
注意:我已经通过手动创建线程在C#中完成了一些多线程,线程的更复杂性只会让它变得更有趣.:)
TBB怎么样?它是可移植的,并且具有易于使用的并行模板模式、并发容器、任务调度程序和可扩展的内存分配器。TBB 可以让您直接管理线程,但在大多数情况下这不是必需的。
就我个人而言,我会远离特定于平台的线程,除非迫切需要做一些特定于平台的事情。
Boost 线程可移植且易于使用,但既没有并行模式,也没有并发容器。您需要手动管理线程,这很快就会变得丑陋。
PThreads 在 Windows 及其 C 上不可用。您确实想在 C++ 中进行多线程,而不是 C。RAII 与互斥体和作用域锁很好地混合。
另一个选项是 Visual C++ 2010 中的 PPL。它与 TBB 类似,但您可能猜到仅适用于 Windows。
OpenMP 易于使用,但不太灵活。既然你已经学过 C++,你应该使用更严肃的东西,比如 TBB 或 PPL。由于某些奇怪的原因,Visual C++ 2010 不支持 OpenMP 3。太糟糕了。
| 归档时间: | 
 | 
| 查看次数: | 1183 次 | 
| 最近记录: |