【发布时间】:2017-09-16 17:39:41
【问题描述】:
只需要对 C++ 上的并行处理方法有所了解。到目前为止,我在并行化方面的工作一直在 C 上,其中主要方法是使用 pthreads。
不过,我也使用过 openMP 和 cilkPlus。
我只是想问一下,C++中并行化代码的常用方法是什么? pthreads被认为是一个好还是坏的实现?我应该继续在 C++ 中使用它们吗?
【问题讨论】:
-
开始 c++11 的 stl 库中有一个标准线程包,您可以使用它来代替 pthreads。或者您可以继续使用 pthreads。
-
我认为这可能过于宽泛且基于意见,因为不同的技术适用于不同的情况。但是
C++现在有一个标准线程库,它一定会很流行。pthreads是一个很好的实现,但它没有利用标准的C++技术来提供异常安全和 RAII 资源管理等功能。 -
在 Windows 和其他一些操作系统的情况下,有 WaitForMultipleObjects 或类似的东西。这需要使用 Windows 本机线程或进程。 Linux 不包含等效功能,需要某种解决方法。
标签: c++ parallel-processing pthreads