【问题标题】:Is there any advantage in using atomic_init over atomic_store ?使用 atomic_init 优于 atomic_store 有什么优势吗?
【发布时间】:2016-01-09 07:14:37
【问题描述】:

我阅读了 cpp 文档并理解了这一点

Atomic_init
- 是非原子的并且容易发生数据竞争(所以它带有问题) -从指令中的“init”一词,我相信它必须用于第一次初始化变量。

Atomic_store - 将值原子地存储到原子变量中

那么我们为什么不使用原子存储来初始化变量呢?如果是这样,为什么他们有 atomic_init?

使用 atomic_init 比 atomic_store 有什么优势吗?

【问题讨论】:

    标签: multithreading concurrency parallel-processing shared-memory multicore


    【解决方案1】:

    通常,您不需要原子地初始化任何东西,因为这意味着多个线程正在竞争使用未初始化的内存。

    通常,内存在构造/初始化期间是单线程的,但随后会以其他线程可以开始使用它的方式“发布”。

    在全局原子的情况下,通常您会在更多线程存在之前尽早初始化它们。

    使用Atomic_init 的优点是明确表示初始化,并绕过少量开销。

    【讨论】:

    • 如何“发布”原子被初始化的事实?
    猜你喜欢
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2019-11-29
    • 2012-03-24
    • 2022-01-21
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多