![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发编程
哈哈抓哇
小java程序员
展开
-
理解JAVA内存模型(JMM)
JMM是一个抽象的概念,他并不是真实存在的东西。只是java为了消除各个平台和系统上堆内存访问差异而定义的一个模型。他主要控制了线程与线程之间的通信,线程与内存之间的交互。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。如图所示: 下面介绍JMM几个比较重要的概念: 1.对执行的重排序,JMM会在保证执行结果正确(单线程下)的前提下对指令进行重排序。但也正是因为重排序的从在,所以在多线程的情况下会发生许多在单线程情况下不会出现的问题。重排序会经历一下几个过程: 2.happens-before原创 2020-11-05 14:53:20 · 95 阅读 · 0 评论 -
volatile关键字解析
学习volatile关键字首先要了解java内存模型。数据是如何在告诉缓存和内存中运作的。 在Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。那么Java内存模型规定了哪些东西呢,它定义了程序中变量的访问规则,往大一点说是定义了程序执行的次序。注意,为了获得较好的执行性能,Java内存模型并没有限制执行引擎使用处理器的寄存器或者高速缓存来提升指令执行速度,也原创 2020-11-02 10:25:15 · 86 阅读 · 0 评论