我正在使用 Linux 用 C 创建一个多线程应用程序。
我不确定是否应该使用 POSIX 线程 API 还是 OpenMP API。
使用两者有何优缺点?
Edit:
有人可以澄清这两个 API 是否创建内核级 or 用户级线程?
Pthreads 和 OpenMP 代表两种完全不同的多处理范例。
Pthreads http://en.wikipedia.org/wiki/POSIX_Threads是一个用于处理线程的非常低级的 API。因此,您可以对线程管理(创建/加入/等)、互斥体等进行极其细粒度的控制。这是相当简单的。
另一方面,OpenMP http://en.wikipedia.org/wiki/OpenMP is much更高级别,更便携,并且不限制您使用 C。它也比 pthreads 更容易扩展。一个具体的例子是 OpenMP 的工作共享结构,它可以让您相对轻松地在多个线程之间划分工作。 (另请参阅维基百科的优点和缺点列表 http://en.wikipedia.org/wiki/OpenMP#Pros_and_cons.)
也就是说,您确实没有提供有关您正在实现的特定程序或您计划如何使用它的详细信息,因此几乎不可能推荐一种 API 而不是另一种。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)