File tree Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -94,12 +94,16 @@ GC Roots包括:虚拟机栈中引用的对象、方法区中类静态属性引
94942 . 老年代空间不足(通过Minor GC后进入老年代的大小大于老年代的可用内存)
95953 . 方法区空间不足
9696
97- ## Java内存模型
98- 主内存:所有变量都保存在主内存中
99- 工作内存:每个线程的独立内存,保存了该线程使用到的变量的主内存副本拷贝,线程对变量的操作必须在工作内存中进行
97+ ## [ Java内存模型] ( https://mp.weixin.qq.com/s/ME_rVwhstQ7FGLPVcfpugQ )
98+ 定义:JMM是一种规范,目的是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。目的是保证并发编程场景中的原子性、可见性和有序性
99+
100+ 实现:volatile、synchronized、final、concurrent包等。其实这些就是Java内存模型封装了底层的实现后提供给程序员使用的一些关键字
100101
101102![ ] ( https://github.com/xbox1994/2018-Java-Interview/raw/master/images/j12.jpg )
102103
104+ 主内存:所有变量都保存在主内存中
105+ 工作内存:每个线程的独立内存,保存了该线程使用到的变量的主内存副本拷贝,线程对变量的操作必须在工作内存中进行
106+
103107每个线程都有自己的本地内存共享副本,如果A线程要更新主内存还要让B线程获取更新后的变量,那么需要:
104108
1051091 . 将本地内存A中更新共享变量
You can’t perform that action at this time.
0 commit comments