至于什么是伪共享的问题, 这里就不详细赘述了.
大概的意思就是, 多核cpu修改处于同一个缓存行内不同的数据. 因为数据一致性的问题, 导致效率变慢
java1.8以前一般都是填充解决. 而java1.8引入了 @Contended 注解(sun.misc.Contended).
有@Contended 注解结果:
无注解的执行结果:
需要注意: 启动的时候需要加jvm参数: -XX:-RestrictContended