在atomic_store上使用atomic_init有什么好处吗?

时间:2015-10-11 21:46:31

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

我阅读了cpp文档并理解了

ATOMIC_INIT
        - 非原子,容易发生数据竞争(因此存在问题)         - 从指令中的术语'init'开始,我相信它必须首次用于初始化变量。

Atomic_store    - 以原子方式将值存储到原子变量

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

使用atomic_init比使用atomic_store有什么好处吗?

1 个答案:

答案 0 :(得分:3)

通常,您不需要以原子方式初始化任何内容,因为这意味着多个线程竞争使用未初始化的内存。

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

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

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