关于x86 处理器重排序storeLoad问题

图片说明
共享内存有a=5②store a=4 ③load a ②和③重排序会不会出现问题

单处理器单线程没有问题,多处理器多线程,需要对共享变量上锁

重排序了的话最后读取的值是脏的?

单线程处理器遵守根据as-if-serial规则,当两个操作有依赖时,不会重排序,你这个情况不会重排序