【问题标题】:C++ Is there any threadsafe to write into (faster than not thread safe analogs busted with locks) component?C++ 是否有任何线程安全可以写入(比没有锁的线程安全类似物更快)组件?
【发布时间】:2011-08-20 22:18:33
【问题描述】:

所以我尝试了一些组件(映射、集合、向量、数组、队列等),我总是必须让 tham 线程安全……这让 tham 变慢了……是否有任何线程安全可写入组件?在 Boost 中还是在任何地方?

【问题讨论】:

  • 如果你想要一般的线程安全,那么我相信 Boost 容器都没有提供这样的功能,你基本上必须序列化对整个容器的访问。如果不修改容器,不同元素的并发访问应该没问题。
  • 请记住,C++ 本身是线程安全的,并且没有线程的概念。是否提供线程 API 取决于实现(当然,几乎所有 API 都提供)。如果您使用的是特定平台,我们可能会推荐针对特定平台的优化。

标签: c++ multithreading boost


【解决方案1】:

您可以在英特尔的线程构建模块中找到一些。您还可以在 Microsoft 的 PPL 中找到一些。

【讨论】:

    【解决方案2】:

    您可以看看 Max Khiszinsky 的 libcds: Concurrent Data Structures

    它包含高度通用/可配置的无锁容器和算法。它带有广泛的测试。我会说,文档大约是平均水平。

    琐事 该库看起来已准备好进行提升,但 (AFAICT) 它取决于它可能包含的受专利保护的算法

    【讨论】:

      【解决方案3】:

      Boost.Lockfree 最近正在接受 Boost 审核。我不知道这次审查的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 2020-02-08
        • 2011-10-12
        • 2015-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多