c 线程;快速且便携?
ansi c99 中的线程。我正在寻找一些快速且跨平台的东西(或者至少是win/mac/linux)。我在这里有什么选择?
pthreads-32 看起来不再活跃(最后一次更新于 2006 年)。
我使用 MinGW 作为编译器,所以普通的 pthreads 可以工作吗?
Boost 很好,但只有 C++
protothreads 看起来很有前途? http://www.sics.se/~adam/pt/
OpenMP需要编译器支持,对于我的需求来说似乎相当大。
我正在使用 OpenCL;但在 CPU 上用于“简单线程”似乎真的很尴尬,并且不支持所有功能(也就是说,创建一个线程来播放音乐真的很困难/不可能)。
Threads in ansi c99. I'm looking for something fast and something that is cross platform (or at least win/mac/linux). What are my options here?
pthreads-32 doesn't look active any more (last update in 2006).
I'm using MinGW as a compiler so normal pthreads might work?
Boost is nice, but only C++
protothreads look promising?? http://www.sics.se/~adam/pt/
OpenMP needs compiler support and seems pretty big for my needs.
I'm using OpenCL; but seems really awkward to use for "simple threads" on the CPU and doesn't support everything (that is, it would be really difficult/impossiable to make a thread to play music).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,您使用的是 OpenCL,为什么 OpenMP 会“满足您的需求”?编译器支持不是问题。我确信没有一个编译器支持/“与”OpenCL 一起工作而不支持 OpenMP。
其次,pthreads-win32 可能看起来很旧,但它并不是多余的或“坏”的。许多项目仍然成功地使用该库。
我会选择这个列表(按优先顺序排列):
顺便说一句,OpenCL 是否使用完全独立的小程序内核,无论您如何在该内核之外应用线程,它们都有自己的并行执行,具体取决于硬件?
First off, you're using OpenCL, why would OpenMP be "big for your needs"? Compiler support isn't a problem. I'm confident there's no compiler that supports/"works with" OpenCL that doesn't have support for OpenMP.
Secondly, pthreads-win32 may seem old, but it's not superfluous or "bad" because of it. A lot of projects still use that library with success.
I'd go with this list (ordered by preference):
And by the way, doesn't OpenCL use kernels that are completely independent little programs that have their own parallel execution depending on the hardware regardless of how you applied threading outside of that kernel?
这是一个以跨平台方式提供 pthread 功能的标头:
Here is a header that provides pthread functionality for in a cross-platform way: