多线程&并发篇---第十三篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、说说你对JMM内存模型的理解?为什么需要JMM?
  • 二、多线程有什么用?
  • 三、说说CyclicBarrier和CountDownLatch的区别?


一、说说你对JMM内存模型的理解?为什么需要JMM?

随着CPU和内存的发展速度差异的问题,导致CPU的速度远快于内存,所以现在的CPU加入了高速
缓存,高速缓存一般可以分为L1、L2、L3三级缓存。基于上面的例子我们知道了这导致了缓存一致
性的问题,所以加入了缓存一致性协议,同时导致了内存可见性的问题,而编译器和CPU的重排序
导致了原子性和有序性的问题,JMM内存模型正是对多线程操作下的一系列规范约束,因为不可能
让陈雇员的代码去兼容所有的CPU,通过JMM我们才屏蔽了不同硬件和操作系统内存的访问差异,
这样保证了Java程序在不同的平台下达到一致的内存访问效果,同时也是保证在高效并发的时候程
序能够正确执行。

多线程&并发篇---第十三篇_第1张图片
原子性:Java内存模型通过read、loa

你可能感兴趣的:(多线程)