目录
五十六、JMM之入门简介
Java内存模型之JMM
1、先从大厂面试题开始
①、你知道什么是Java内存模型JMM吗?
②、JMM与volatile它们两个之间的关系?(下一章详细讲解)
③、JMM有哪些特性or它的三大特性是什么?
④、为什么要有JMM,它为什么出现?作用和功能是什么?
⑤、happens-before先行发生原则你有了解过吗?
2、计算机硬件存储体系
计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存,到CPU。
一般对应的程序的操作就是从数据库查数据到内存然后到CPU进行计算
3、推导出我们需要知道JMM
五十七、JMM之学术定义和作用
Java内存模型Java Memory Model
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定和规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性、可见性和有序性展开的。
原则:
JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的
能干嘛?
1、通过JMM来实现线程和主内存之间的抽象关系。
2、屏蔽各个硬件平台和操作系统的内存访问差异以实现让Java程序在各个平台下都能达到一致的内存访问效果
五十八、JMM之三大特性
JMM规范下,三大特性
可见性:是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道该变更,JMM规定了所有的变量都存储在主内存中。
在高并发多线程的情况下,内存条上面的数据多个线程假设来读取、来访问,某个线程把它给改了,它需要把它的修改结果刷新回主物理内存,它怎么让大家知道现在主物理内存里面的数据已经变了,怎么让大家收到这个通知呢&#x