参考:https://www.bilibili.com/video/BV1z4411q7hB?p=2
概念:
原子性、有序性、可见性、
内存屏障
1. 多cpu,多缓存寄存器, 主内存, 组成。
cpu1 cache2
main memory
cpu2 cache2
2. volatile 的作用, 共享变量在不同线程间的共,保证变量操作的可见性,有序性,并不能保证原子性。 实现原理,底层汇编实现的 MESI缓存一致性的协议。
3.乱序
JVM设计乱序执行,为了提高效率,对于大部分的程序是可以顺序执行的,但很多语句并非是原子操作。机器指令的执行顺序是并行执行的。
寄存器 与 主内存的速度比是 100: 1。
乱序的原则:
1. as-if-serial
2. 不影响单线程的最终一致性。
4.
来源:oschina
链接:https://my.oschina.net/zhaolin/blog/4927845