ansi c99 中的线程。我正在寻找快速且跨平台的东西(或至少是 win/mac/linux)。我在这里有什么选择?
pthreads-32 看起来不再活跃(最后一次更新是在 2006 年)。
我使用 MinGW 作为编译器,所以普通的 pthreads 可以工作吗?
Boost 很好,但仅限于 C++
protothreads 看起来很有前途?? http://www.sics.se/~adam/pt/
OpenMP 需要编译器支持,而且似乎非常适合我的需求。
我正在使用 OpenCL;但在 CPU 上用于“简单线程”似乎真的很尴尬并且不支持所有内容(也就是说,创建一个线程来播放音乐真的很困难/不可能)。
最佳答案
首先,您使用的是 OpenCL,为什么 OpenMP 会“满足您的需求”?编译器支持不是问题。我相信没有不支持 OpenMP 的支持/“与”OpenCL 一起工作的编译器。
其次,pthreads-win32 可能看起来很旧,但它并不是多余的或“坏”的。许多项目仍然成功地使用该库。
我会使用这个列表(按偏好排序):
- OpenMP(简单、可移植)
- pthreads(可移植性)
- C++2011 线程又名 Boost.Thread(但在 C++ 中,而不是 C)
- POSIX 上的 pthreads,Windows 上的 Win32 线程。
顺便说一句,OpenCL 使用的内核不是完全独立的小程序,无论您如何在内核之外应用线程,它们都有自己的并行执行,具体取决于硬件?
关于c线程;快速便携?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746508/