先看Java内存模型在看并发

前言在之前我也有写过JMM相关的文章,但是我觉得并不是很好,所以这次我又写了。之前可能是个人文笔不好,描述的点不是很清楚。 首先我们在了解java内存模型之前先看一下计算机内存模型,理解了计算机内存模型的话后面在看JMM就会简单的多,上篇文章我是直接写的。 计算机内存计算机是由CPU、主存、磁盘等组成的(简单引出问题熬)我们都知道计算机执行程序的指令都是由CPU来执行的,执行的时候是要处理数据的,这些数据通常存储在主存中。 如图所示,这时候问题来了,CPU的执行速度越来越快,然后内存倒是没什么进展,这样的话CPU的读写操作就会非常耗时,效率不就很低了? 所以这个时候就出现了高速缓存(Cache)来解决这个问题,那么缓存是什么呢?缓存其实就是保存的数据备存,特点是快。所以这个时候程序的执行过程就变成了这个样子:首先在运行的时候会把数据从主存中赋值一份放在缓存中,然后CPU在运算的时候就直接去缓存中读写数据,等执行结束后在把数据刷新到主存中。这样一来就大大的提高了执行的速度。我们来看一下流程图: 可以看出,运行的时候L1缓存先把数据从主存中读取出来,然后CPU操作的数据是从缓存中读取,
 2019-09-09    |   Java内存模型    |   Java  JMM  Java内存模型