美文网首页
jvm内存模型

jvm内存模型

作者: 溜溜猪66 | 来源:发表于2018-09-27 19:10 被阅读0次

1.线程通信:内存共享、消息通信。共享内存,会拷贝主内存的一个变量副本到本地线程内存中

2.指令重排序(1.优化,不改变语义下可以重新安排语句的执行顺序,2.指令级并行重排序,3.内存系统存在缓冲区,读写缓冲区,仅对当前处理器可见)、内存屏障指令 如果存在数据依赖(as-if-serial)不会重排序

3.happens-before  不要求,先后的执行,只要求最后的结果可见(A->B 有数据依赖性,单线程中,就是代码顺序),  编译器和处理器(软件和硬件都支持happens-before 重排序)

4.单线程进行重排序不会改变运行结果,多线程对控制依赖重排序,可能会改变执行结果,单个处理器才会考虑依赖性,多个处理器和不同线程之间不考虑依赖性

5.顺序一致性模型要求线程操作执行顺序对所有线程可见,JMM不保证,因为线程有本地缓存,刷新到主内存有延时

6.在同步的时候,编译器和处理器会使用重排序进行性能优化

7.在未同步的时候,只保证最小的安全性,值不会无中生有,所以JVM生成对象的时候,会清零内存空间

8.jmm保证所有基础类型的原子性,但是jmm不保证64位的 double,long的原子性(数据总线,串行化保证),因为对64保证原子性开销太大会拆分为2个32位

9.volatile 单个的读写具有原子性,volatile++这种不具备原子性,对volatile的读,总是能看见所有线程都它的最后的写入

10.volatile 写之后 会把本地内存的共享变量刷新到主内存,volatile读之后,会把本地变量设置为无效,再从主内存中同步

11.volatile 写操作本质上是对所有将要读这个变量的线程的一个消息,volatile读操作是线程接收到写线程的消息(对写操作之前的共享变量的修改),写操作->读操作实际上是通过主内存向读操作发生消息(和锁具有相同的语义)

12.线程释放锁的时候,会把本地内存中的共享变量刷新到主内存,线程获得锁的时候,会把本地内存设置为无效,然后从主内存中加载共享变量

13.ReentrantLock 公平锁和非公平锁释放时,最后都要写一个volatile,公平锁获取时,要获得这个volatile,非公平锁获得时CAS更新volatile,同时具有读和写的语义

14.final   在构造函数内对final的写入,不能被重排序到构造函数之外(确保了final已经初始化,而普通类型不能保证),在构造函数内读final时,保证已经加载所在的对象。在构造函数内对final引用类型的局部域修改和在构造函数外把这个引用赋值给另外一个引用不能重排序(保证了修改可见)

15.JMM的重排序,根据会不会改变执行结果进行

相关文章

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • [Java多线程编程之八] Java内存模型

    一、Java内存模型 == JVM内存模型?   很多人都会认为Java内存模型就是JVM内存模型,但实际上是错的...

  • JVM问题及解答

    常见JVM问题 JVM内存模型,GC机制和原理。注意JVM内存模型与Java内存模型(JMM)不是同一个东西。JV...

  • JVM内存结构和Java内存模型

    最近看到两个比较容易混淆的概念:JVM内存结构和Java内存模型 JVM内存结构JVM内存结构或者说内存模型指的是...

  • 高效并发

    从JVM的角度看一下Java与线程,内存模型,线程安全以及JVM对于锁的优化 硬件内存模型与JVM内存模型 硬件的...

  • jvm

    1.5.1JVM的内存模型 首先我们来了解一下JVM的内存模型的怎么样的: 基于jdk1.8画的JVM的内存模型-...

  • JVM基础知识点

    1. 内存模型以及分区,需要详细到每个区放什么(共分为5个)。 JVM内存模型及分区jvm内存模型和内存分配 程序...

  • 面试系列之JVM

    1.jvm内存模型 jvm内存模型主要有运行时期模型和非运行时期两部分组成,通常说的jvm内存模型是指运行时期内存...

  • jvm内存模型

    Java虚拟机内存模型 计划发布3篇博客, 这是第一篇:jvm内存模型 jvm内存模型 对象创建和内存分配 OOM...

网友评论

      本文标题:jvm内存模型

      本文链接:https://www.haomeiwen.com/subject/xpkyoftx.html