【问题标题】:posix threads (pthreads) standardposix 线程 (pthreads) 标准
【发布时间】:2012-09-14 09:14:12
【问题描述】:

我正在寻找pthreads 标准,用于我在并行性方面所做的一些工作。我发现它应该是 IEEE 1003.1c“信息技术的 EEE 标准 - 可移植操作系统接口 (POSIX(R)) - 系统应用程序接口 (API) 修正案 2:线程扩展(C 语言)”。但是,当I get to it 时,它说该标准已被“取代”,但他们没有说什么(或者我没有看到他们在哪里说的)。有谁知道替代标准的链接?谢谢。

【问题讨论】:

    标签: c linux pthreads posix standards


    【解决方案1】:

    它已被较新的版本(2008 年)取代。它以 IEEE 1003.1-2008 或 ISO/IEC 9945-2009(足够的钱)或The Open Group Single Unix Specification, version 7(免费)的形式提供。这三个都有相同的内容。

    【讨论】:

      【解决方案2】:

      是的,那是一份非常古老的文件。你可能想要的是完整的POSIX 2008 spec

      【讨论】:

        【解决方案3】:

        由于您在问题中标记了 Linux,我建议除了 Jerry Coffin 回答的内容之外,您还可以查看 Linux pthreads man page。当前的 Linux pthreads 实现 (NPTL) 并不完全符合 POSIX;有些小细节处理方式不同。

        还有类似__thread 关键字的扩展(用于指定每个线程的变量,比pthread_key_create() 简单得多;针对GCC here 进行了详细解释)在Linux 和其他操作系统中可用,并且很可能将来某个时候会包含在 POSIX 中。

        如果您正在从事对性能极为敏感的工作,我建议您还查看 GCC、ICC 和 Pathscale 编译器中可用的原子内置函数和向量扩展(GCC vector extensionslegacy __sync builtinsC++11-style __atomic builtinsx86-specific builtins)。虽然这些还没有标准化,但它们可以在上述编译器中使用,并且除了最近的 __atomic 内置函数之外,它们至少已经存在了十年。从个人经验来看,我可以证明这些工具可以显着提升性能(在我正在研究的经典分子动力学模拟器中提高约 40%),同时仍然可以在非 Windows 系统和编译器之间移植。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-15
          • 1970-01-01
          相关资源
          最近更新 更多