c – Pthreads和OpenMP

我在C中使用Linux创建一个多线程应用程序。

我不确定是否应该使用POSIX线程API或OpenMP API。

什么是优点?缺点使用?

编辑:

有人能澄清两个API是否创建内核级或用户级线程?

Pthreads和OpenMP表示两个完全不同的多处理范例。

Pthreads是一个非常低级的API,用于处理线程。因此,您对线程管理(创建/连接/ etc),互斥体等进行了非常精细的控制。这是相当裸骨。

另一方面,OpenMP是更高的水平,更便携,并不限制你使用C.它也比pthreads更容易缩放。一个具体的例子是OpenMP的工作共享结构,它允许你相对轻松地跨多个线程划分工作。 (参见维基百科的pros and cons list.)

也就是说,你真的没有提供你正在实现的具体程序的细节,或者你打算如何使用它,所以建议一个API是相当不可能的。

http://stackoverflow.com/questions/3949901/pthreads-vs-openmp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – Pthreads和OpenMP