你的第二个问题,原子变量用自定义类型的时候,
如果你的自定义类型超过机器的物理限制,例如64位机8bytes,
就会内部用mutex实现。
低过就是无锁实现。
【 在 confinement (禁闭) 的大作中提到: 】
: 网上的测试例程,分别起10个线程对一个全局变量进行累加,分成累加函数无锁全局变量为long long、有锁全局变量为long long、全局变量使用原子变量三种情况
: 具体代码见:
https://www.stubbornhuang.com/781/: 纠正: 3楼说的对,没仔细看代码,这个问题估计就没什么意思了。把锁放到for里面去,结果 no.2 花了大概 55ms。 如果是就是原来的这个代码,也大致能理解,各种线程切换缓存处理命中可能会差一些
: ...................
--
FROM 218.1.105.*