【发布时间】:2014-08-24 19:33:41
【问题描述】:
有很多关于 C11 和 C11 线程的问题,但我在任何地方都没有看到明确的答案:
任何C 库是否实现了可在类 GNU/Linux 上使用的 C11 线程接口? 例如,提供“可选”<threads.h> 和 thread support library 之类的thrd_create(),来自the C11 standard,靠近 p。 376.
理想情况下,我想为通用/通用/多架构(例如,GNU/Linux、x86_64 或便携式)找到一个通用的、开源的或免费的库。
一些更有用和相关的 SO 链接:
-
this one 和 this one on
glibc; - this one 说的是标准;
-
this one约
clang; - this one 是关于 C11 的总体情况,this one 是关于 Windows 和其他平台的;
- 关于 C++11 线程的更多信息,但我只对 C11 感兴趣。
库的一些非入门选项:
-
glibc图书馆does not;自 2012 年以来有一个open bug;有GSoC proposal,但似乎not accepted; - LLVM/Clang 项目没有 C 库;
-
musl library does not;-- 现在可以了!请参阅下面的编辑和answer。 -
Newlib 库支持线程 (docs),但不使用
pthread或 C11 线程; - uClibc 没有;
- this comparison 图表,这是可疑的(例如,我在 musl 源代码中没有看到 C11 线程本地存储支持的证据);
- 一些关于BSD的各种帖子,
- Pelles,显示为已关闭且仅限 Windows。
我不对 POSIX 线程(许多不错的选择)、Windows、IDE 和 C++11(我知道 GNU libstdc++ 和 LLVM /Clang libc++提供C++11的std::thread,它使用-pthread)
谢谢!
(重新)编辑:问题重新打开,所以migrated content to answer 进行清理。
【问题讨论】:
-
@Grady - 谢谢;您的问题已经是上面的链接#4。 :) 根据经验,例如,
glibc将__STDC_NO_THREADS__设置为1,正如您在问题中所指出的那样。 -
抱歉,我点击的次数不够。
-
我不会太担心 6:1 的比例相当于工具购买问题(一个经过充分研究的工具购买问题)。
-
glibc 现在支持,包含在 2.28 中
标签: c multithreading c11