java多线程基础篇第一篇

1.在开始多线程之前,我们先来聊聊计算机的缓存

  计算机处理一个程序需要cpu处理器与存储设备的交互。但是在计算机发展的过程中,cpu处理器的处理速度不断提高,而存储设备的读写速度却没有得到与cpu同样速度的发展。为了解决这个问题,我们在处理器与存储设备之间加了一层缓存,基本上解决了cpu与存储设备速度的差别。现在的计算机缓存大体上分为三级,L1级缓存,L2级缓存,L3级缓存,其中L1,L2级缓存属于每个cpu独享,L3级缓存属于多个cpu共享。但是这也引发了一个问题,就是对于共享数据操作的一致性问题。为了解决这个问题,在cpu与缓存之间,我们制定了缓存一致性协议,最常见的就是MESI协议。其中计算机cpu的缓存如下图所示。

解读:计算机处理器与主内存之间添加了一层缓存,为了保证各个处理器对于主内存中数据操作的安全性,引入了缓存一致性协议。各个处理器与主内存中数据的交互必须是建立在缓存一致性协议之上的。

2.理解JMM(java内存模型)

  

猜你喜欢

转载自www.cnblogs.com/code-star/p/10704255.html