Java多线程和并发(十),JMM(Java内存模型)

时间:2022-03-04 00:12:01

目录

1.什么是JMM

2.JMM的主内存和工作内存

3.JMM如何解决可见性问题-指令重排序

4.Volatile

十、JMMJava内存模型)(暂时没有理解)

1.什么是JMM

 Java多线程和并发(十),JMM(Java内存模型)

2.JMM的主内存和工作内存

1)主内存

 Java多线程和并发(十),JMM(Java内存模型)

(2)工作内存

 Java多线程和并发(十),JMM(Java内存模型)

(3)主内存和工作内存数据存储类型以及操作方式归纳

 Java多线程和并发(十),JMM(Java内存模型)

4JMMJava内存区域划分是不同的概念层次

 Java多线程和并发(十),JMM(Java内存模型)

3.JMM如何解决可见性问题-指令重排序

1)指令重排序的条件

 Java多线程和并发(十),JMM(Java内存模型)

(2)如果A操作的结果需要对B可见,必须要满足happens-before原则

(3)happens-before原则

 Java多线程和并发(十),JMM(Java内存模型)

(4)happens-before的概念

 Java多线程和并发(十),JMM(Java内存模型)

4.Volatile

(1)volatileJVM提供的轻量级同步机制

  保证被volatile修饰的共享变量对所有线程总是可见的

(2)单例的双重检测实现

 Java多线程和并发(十),JMM(Java内存模型)

3volatilesynchronized的区别

Volatile是轻量级锁

 Java多线程和并发(十),JMM(Java内存模型)