【发布时间】:2011-01-20 10:47:22
【问题描述】:
我对多线程感兴趣。该领域有很多陷阱,例如,不能保证指针写入是原子的。我明白了,但想知道实际情况下最流行的当前配置是什么?例如,在我的 Macbook Pro/gcc 上,指针写入肯定是原子的。
【问题讨论】:
-
如果指针存储在未对齐的内存位置(这样它的值可能存储在两个不同的缓存行中?
-
@jdv:这不太可能是偶然发生的。所以我对这种情况不感兴趣。
-
即使它们是原子的,您也会遇到可见性问题 - 除非得到照顾,否则该指针可能存储在寄存器中而从未写入内存 - 或者内存写入可能是重新排序,当你认为它根据你的代码发生时不会发生
标签: c++ c multithreading atomic