JMM小记

JMM小记

JMM,顾名思义,java memory model。他有3个特征:原子性,可见性,有序性。
JVM系统中都有个一主存,JAVA中所有变量都是存储在主存中,对所有线程都是共享的。
而每条线程都有自己的工作内存,工作内存中保存的是主存中某些变量的值,线程对所有变量的修改都是在工作内存中进行,线程之间无法直接互相访问,变量的传递都是通过主存完成。
可见性:JMM中并发线程修改变量,必须将工作内存中的变量同步到主存后,其他线程才能访问到
有续性:通过JAVA提供的同步机制或者volatile关键字 来保证内存的有序性
JAVA中保证多核系统JMM缓存一致性原则: happens-before ordering(先行发生排序)
JAVA提供了
1.synchronized关键字
2.volatile关键字
3.final关键字
4.同步包中的locks
5.同步包中的原子类

你可能感兴趣的:(JMM小记)