摘要:
LongAdder 源码如下 cell的代码 其中Contended注解主要是为了解决不同缓存行数据失效的问题 由于cpu的速度和内存的速度差距太大,在cpu从内存读取数据到寄存器之间有三级缓存(l1,l2,l3),可以提升读取效率(详细可见操作系统)假设cpu1(核心1),cpu2(核心2)同时从 阅读全文
摘要:
volatile主要用途 1、保证可见性 对volatile变量的写指令后会加入写屏障 写屏障:在屏障之前的对共享变量的改动都同步到主存 对volatile变量的读指令前会加入读屏障 读屏障:在该屏障之后对共享变量的读取加载的都是主存中的新数据 2、保证有序性 写屏障保证指令重排序时,不会讲写屏障之 阅读全文