美文网首页
内存模型

内存模型

作者: 开始你的戏 | 来源:发表于2017-09-13 14:51 被阅读0次

原子性

有序性

可见性

Happens-Before原则

内存模型:主要目的是限制了主内存变量的访问规则,这里变量包括,静态字段,实力字段,构成数组的元素,但不包括局部变量和方法参数,因为他们是一个线程私有的,不存在并发问题。

如果要强行和java内存区域对应起来,就是 主要内存对应着 堆,工作内存(高速缓存区)对应着 方法栈中的部分区域。

在内存直接的交互,jvm内存模型定义了8大操作,且都是都是原子性的,lock,unlock,read,load,use,assign,store,wirte.

其中 ,read,load,use,assign,store,wirte 是用户可以使用的 ,而lock,unlock用户可以通过操作 更高级的指令monitor来实现。

在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序。重排序分三种类型:

1. 编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。

2. 指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ILP)来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序。

3. 内存系统的重排序。由于处理器使用缓存和读/写缓冲区,这使得加载和存储操作看上去可能是在乱序执行。

从java源代码到最终实际执行的指令序列,会分别经历下面三种重排序:

java编译器在生成指令序列的适当位置会插入内存屏障指令来禁止特定类型的处理器重排序

相关文章

  • Flink JobManager | TaskManager内存

    Flink内存模型分析 JobManager内存模型 TaskManager内存模型 内存模型分析 Flink使用...

  • 图解jvm--(四)内存模型

    内存模型 java 内存模型 很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模...

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

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

  • java内存模型

    1.内存模型(JMM) 1.1什么是Java内存模型? Java内存模型将内存分为主内存和工作内存两大部分;主内存...

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

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

  • 深度解析Java多线程的内存模型

    内部java内存模型 硬件层面的内存模型 Java内存模型和硬件内存模型的联系 共享对象的可见性 资源竞速 Jav...

  • java虚拟机-内存模型与线程

    一、java内存模型 java定义的内存模型是类似物理计算机的三级缓存模型 1.主内存与工作内存 java内存模型...

  • CPU内存模型 和 JAVA内存模型 讲解

    CPU 内存模型 在讲解 JAVA 内存模型之前,先了解 CPU 内存模型,因为JAVA内存模型跟它是十分相似的。...

  • Java基础之内存模型

    Java基础之内存模型 目录 Java内存模型简单介绍 JVM介绍 存储方式 并发原因 Java内存模型与系统内存...

  • (005)java中的内存模型

    概述 在java中应为不同的目的可以将java划分为两种内存模型:gc内存模型。并发内存模型。 gc内存模型 ja...

网友评论

      本文标题:内存模型

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