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

Multithreading 使用atomic_init比使用atomic_store有什么优势吗?,multithreading,concurrency,parallel-processing,shared-memory,multicore,Multithreading,Concurrency,Parallel Processing,Shared Memory,Multicore,我阅读了cpp文档并理解了这一点 原子初始化 -是非原子的,容易发生数据竞争(因此会带来问题) -从指令中的术语“init”来看,我认为它必须用于第一次初始化变量 原子存储 -将值以原子方式存储到原子变量中 那么我们为什么不使用原子存储来初始化变量呢?如果是这样的话,为什么他们会有原子_init 使用atomic_init比使用atomic_store有什么优势吗 通常,您不需要对任何内容进行原子初始化,因为这意味着多个线程正在竞争使用未初始化的内存 通常,内存在构造/初始化期间是单线程的,但随

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

原子初始化
-是非原子的,容易发生数据竞争(因此会带来问题) -从指令中的术语“init”来看,我认为它必须用于第一次初始化变量

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

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


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

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

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

在全局原子的情况下,通常您会在更多线程出现之前提前初始化这些线程

使用
Atomic\u init
的优点是显式地表示初始化,并绕过少量开销。

如何“发布”原子已初始化的事实?