我目前正在C中实现并行程序,其中包括消息传递/工作共享/工作窃取组件。基本上,线程将通过向彼此发送指向数据的指针来共享数据。出于多种原因,我认为原子操作最适合我的用例而不是互斥体(即,共享工作,一个线程可以简单地在另一个线程的收件箱中原子地存储指向该工作的指针)。但是,在共享指针时,我有点担心数据的“新鲜度”。我的理解是,当使用C11原子时,不能保证原子地更新变量也会同步内存(这样一个线程执行的突变不会立即变得对从另一个线程接收指针的线程变得可见),如一个线程可以在该指针处缓存过时的数据。我的问题是: