cpu
Rgtister : 寄存器
ALU: 运算单元
PC : programe control 程序计数器
缓存行伪共享
cpu运行处理数据时,根据局部性原理会加载一块连续内存中的数据,该内存称作缓存行,windows操作系统中缓存行对应的是64字节大小。对于多线程处理的情况,多个线程同时处理该缓存行中的不同数据,根据MESI协议会频繁的导致cpu读取缓存行中的数据失效,影响cup处理的效率。
处理方式: 对齐填充
乱序
cup load指令加载内存中数据时,会优先执行其他的指令
禁止乱序
cup层面: intel 原语 (lfence、sfence、mfence)或者锁总线
jvm 层面: happens-before 或者 4个内存屏障 (ll、ls、sl、ss)
as if serial : 不管硬件什么顺序,程序执行结果不变 ,类似于serial