我的问题是,使用C++0x的atomic<>类,访问原子变量有多快?缓存层面会发生什么?比如,如果一个线程只是读取它,它需要到RAM中读取吗,还是可以直接从执行它的核心的缓存中读取?假设架构是x86。
我特别想知道的是,如果一个线程只是从中读取,同时没有其他线程在写入,那么惩罚是否与读取普通变量相同。原子变量如何被访问。每次读取是否都隐含着写入,如compare-and-swap? 原子变量是通过使用compare-and-swap来实现的吗?
我的问题是,使用C++0x的atomic<>类,访问原子变量有多快?缓存层面会发生什么?比如,如果一个线程只是读取它,它需要到RAM中读取吗,还是可以直接从执行它的核心的缓存中读取?假设架构是x86。
我特别想知道的是,如果一个线程只是从中读取,同时没有其他线程在写入,那么惩罚是否与读取普通变量相同。原子变量如何被访问。每次读取是否都隐含着写入,如compare-and-swap? 原子变量是通过使用compare-and-swap来实现的吗?