[C ++ 11指针上的原子操作

问题描述 投票:0回答:1

我有一打线程读取一个指针,而一个线程可能一个小时左右更改一次该指针。

读者是超级,超级,超级时间敏感的。我听说atomic<char**>或进入主内存的速度有多快,我希望避免这种情况。

[在现代(例如,2012年及以后)服务器和高端台式机Intel中,如果读写正常,是否可以保证8字节对齐的常规指针不被撕裂?我的测试进行了一个小时,没有流泪。

否则,如果我以原子方式进行写入并且正常进行读取,会更好(或更糟)吗?例如,通过将两者结合起来?

请注意,还有其他有关混合原子操作和非原子操作的问题,这些问题未指定CPU,因此讨论演变为语言法律。这个问题与规范无关,而是确切会发生什么,包括我们是否知道未定义规范会发生什么。

c++ c++11 x86-64 stdatomic
1个回答
0
投票

我的《英特尔®64和IA-32架构软件开发人员手册》(2019年5月,第3卷,副本:

© www.soinside.com 2019 - 2024. All rights reserved.