可见性
有序性
原子性
内存可见性
指令重排序:as-if-serial
synchronized:JMM规定线程工作内存的共享变量刷到主内存中,可保证原子性。
volatile关键字:可以保证线程之间状态信息的同步,保证数据的可见性和有序性,但不保证原子性。
无锁
CAS操作,硬件上很多CPU已经支持原子化的CAS指令。
这在juc包下的原子类中得到了充分的应用。
参考链接:
https://tech.meituan.com/java-memory-reordering.html
http://zqhxuyuan.github.io/2017/10/25/Java-Threads/
http://www.cnblogs.com/xrq730/p/7048693.html