c ++ 11多线程vs boost_thread

时间:2015-08-14 17:24:19

标签: c++ multithreading

我是c ++并行计算的初学者。但是,我的项目要求我需要使用c ++ 98(stdlibc ++)。我在网上搜索,似乎大多数教程都基于c ++ 11线程。我注意到boost_thread是c ++ 98的一个实现,但似乎有更少的可用教程。所以我想问一下,为我的项目学习和实现并行计算的最佳方法是什么。

最终,我的项目需要基于数百个核心和计算节点进行计算。多线程是否足够或者我必须使用Boost_MPI?谢谢。

1 个答案:

答案 0 :(得分:3)

如果您仅限于c ++ 98,则意味着您不会将所有线程管理和锁定机制作为语言的一部分。 因此,您必须根据可用的OS API自行实现它们。 Windows和Linux有不同的API。 以下是C++ wrapper for Linux pthread library的示例。 这是C++ wrapper for Windows Threads的一个例子。 所以你的项目不可移植,除非你创建(或找到某个地方)隐藏这些库的类在一个公共接口后面,在该接口下它实现了与auth / #ifdef WINDOWS不同的Windows和Linux相同的逻辑

关于

  

我学习和实现并行计算的最佳方式是什么   对于我的项目。

对此没有正确的答案。寻找一些基本的多线程教程。尝试实施一些简单的程序(在你搬到一个大项目之前),当你遇到更具体问题的困难时回来。

我听说过提升但从未使用它,所以我无法提供任何反馈。但同样,你需要提出具体问题。您可以从项目中提供一些特定要求,并根据它们提出问题。 无论如何深入boost documentation,你可以找到线程相关的库(也注意提升使用许可)。