首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最新java内存模型_java内存模型

Java内存模型 Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。...Java程序执行流程回顾 如图所示 首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀), 然后由JVM中的类加载器加载各个类的字节码文件, 加载完毕之后,交由...Java内存模型指的就是Runtime Data Area(运行时数据区),即程序执行期间用到的数据和相关信息保存区。 1.2....Java内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。结构如下图: 1.2.1. PC程序计数器: l 每个线程对应有一个程序计数器。...Java内存模型工作示意图 1) 首先类加载器将Java代码加载到方法区 2) 然后执行引擎从方法区找到main方法 3) 为方法创建栈帧放入方法栈,同时创建该栈帧的程序计数器

1.2K10

java内存模型_简述java内存模型

什么是JMM   JMM即为JAVA 内存模型java memory model)。...Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。JMM从java 5开始的JSR-133发布后,已经成熟和完善起来。   ...更多的时候,使用java的happen-before规则来进行分析。   模型特征   原子性:例如上面八项操作,在操作系统里面是不可分割的单元。...有序性:java的有序性跟线程相关。如果在线程内部观察,会发现当前线程的一切操作都是有序的。如果在线程的外部来观察的话,会发现线程的所有操作都是无序的。...因为JMM的工作内存和主内存之间存在延迟,而且java会对一些指令进行重新排序。

1.1K21
您找到你想要的搜索结果了吗?
是的
没有找到

Java内存模型

参考链接: Java中的JVM的关闭挂钩 (原本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的内容还蛮多的,所以直接作为一个章节的基础知识来讲解,可能该章节概念的东西比较多...简介      2.堆和栈    3.本机内存    4.防止内存泄漏    1.JMM简介         i.内存模型概述       Java平台自动集成了线程以及多处理器技术,这种集成程度比Java...1)JSR133:       在Java语言规范里面指出了JMM是一个比较开拓性的尝试,这种尝试视图定义一个一致的、跨平台的内存模型,但是它有一些比较细微而且很重要的缺点。...相反,JMM定义了一个线程与主存之间的抽象关系,其实从上边的图可以知道,每一个线程可以抽象成为一个工作内存(抽象的高速缓存和寄存器),其中存储了Java的一些值,该模型保证了Java里面的属性、方法、字段存在一定的数学特性...,但是最终会发生,也就是说,Java内存模型中的可见性的特性主要是针对线程和线程之间使用内存的一种规则和约定,该约定由JMM定义。

60810

Java内存模型

Java 内存模型试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。...文章目录 Java内存模型(JMM)的介绍 内存模型抽象结构 哪些是共享变量 JMM抽象结构模型 主内存与工作内存 内存间交互操作 内存模型三大特性 1. 原子性 2. 可见性 3....传递性 Java内存模型(JMM)的介绍 什么是线程安全?在>中看到的定义。...Java内存模型是共享内存的并发模型,线程之间主要通过读-写共享变量来完成隐式通信。如果程序员不能理解Java的共享内存模型在编写并发程序时一定会遇到各种各样关于内存可见性的问题。...内存间交互操作 Java 内存模型定义了 8 个操作来完成主内存和工作内存的交互操作。 ?

31310

Java内存模型

什么是Java内存模型 java内存模型(JMM)全称为Java Memory Model,是java虚拟机为了java程序能够正常运行而制定的一套规范,规范中规定了JVM中的数据如何与RAM的数据进行交互...Java内存模型是怎样的 我们知道,在Java中,实例字段、静态字段和构成数组对象的元素是线程共享的,但局部变量与方法参数是线程私有的,不会被共享。...那在这里呢,Java 内存模型就定义了 8 种操作和 8 个规则。 回头想想,JMM 是一套规则呀,它只会给你定义规范,模型,具体的实现自己玩去!理解这一点很重要。...Java 内存模型只要求上述操作必须按顺序执行,而没有保证必须是连续执行。...Java 内存模型定义的 8 种操作,就要求虚拟机的实现每一步都必须是原子性的,即不可分割的。

55420

Jmm内存模型_java jvm内存模型

JMM(Java内存模型)源于物理机器CPU架构的内存模型,最初用于解决MP(多处理器架构)系统中的缓存一致性问题,而JVM为了屏蔽各个硬件平台和操作系统对内存访问机制的差异化,提出了JMM的概念。...Java内存模型是一种虚拟机规范,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。...Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式...2、JVM是运行时内存模型 在JVM内部使用java内存模型将内存氛围线程栈和堆,Java 虚拟机中运行的每个线程都有自己的线程堆栈。线程堆栈包含有关线程调用哪些方法以到达当前执行点的信息。...3、JMM内存模型和JVM运行时内存模型的关系 Java运行时内存模型和计算机物理内存结构是不一样的。计算机物理内存结构并不区分栈和堆。在物理内存结构中,栈和堆都位于主存中。

42410

Java内存模型

转载请以链接形式标明出处: 本文出自:103style的博客 Java并发编程的艺术笔记 并发编程的挑战 Java并发机制的底层实现原理 Java内存模型 Java并发编程基础 Java中的锁的使用和实现介绍...Java并发容器和框架 Java中的12个原子操作类介绍 Java中的并发工具类 Java中的线程池 Executor框架 ---- 目录 内存模型基础 volatile的内存语义 锁的内存语义 final...Java并发 采用的是 共享内存模型Java线程之前的通信总是隐式进行的。...Java线程通信由Java内存模型(简称 JMM)控制,JMM 决定一个线程对共享变量的写入何时对另一个线程可见。...---- Java内存模型综述 处理器的内存模型 顺序一致性内存模型 是一个 理论参考模型,JMM和处理器内存模型在设计时通常会以顺序一致性内存模型为参照。

28420

java内存模型

前言 在学习java多线程并发编程前,必须要了解java内存模型,只有了解java内存模型,才能知道为什么多线程并发时会出现数据不一致,什么时候需要加锁同步等各种问题。...下面只是简单阐述下java内存模型及其相关的概念。 内存模型简介 java的并发采用的是共享内存模型(而非消息传递模型)。...Java内存模型Java Memory Model)描述了Java程序中各种变量(共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。...Java线程之间的通信由Java内存模型(JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。...Java内存模型的抽象示意图如下: ? 内存模型 图中的共享变量为:实例变量和静态变量。

99870

Java内存模型

一、硬件的内存模型和指令重排序 在讲解java虚拟机的内存模型之前,我们先了解一下硬件的内存模型和指令重排序。...不同架构的屋里机器可以拥有不一样的内存模型,而Java虚拟机也有自己的内存模型,并且与硬件的缓存的访问操作比较类似。...二、Java内存模型 Java虚拟机中视图定义一种Java内存模型Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果...注意,Java内存模型只要求上述两个操作必须按顺序执行,而没有保证是连续执行。...2.3 Java内存模型的三大特征 介绍完Java内存模型的相关操作和规则,我们再整体回顾一下这个模型的特征。

78710

Java 内存模型

本文以及示例源码已归档在 javacore Java 内存模型Java Memory Model),简称 JMM。...二、Java 内存模型 内存模型 这个概念。我们可以理解为:在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。不同架构的物理计算机可以有不一样的内存模型,JVM 也有自己的内存模型。...但 Java 内存模型只要求上述操作必须按顺序执行,而没有保证必须是连续执行。...三、Java 内存模型规则 内存交互操作的三大特性 上文介绍了 Java 内存交互的 8 种基本操作,它们遵循 Java 内存三大特性:原子性、可见性、有序性。...参考资料 《Java 并发编程实战》 《Java 并发编程的艺术》 《深入理解 Java 虚拟机》 理解 Java 内存模型

87520

Java内存模型

Java的世界也有属于它自己的内存模型Java内存模型,即Java Memory Model,简称JMM。...由于Java被定义成一种跨平台的语言,所以在内存的描述上面也要能是跨平台的,Java虚拟机试图定义一种统一的内存模型,能将各种底层硬件及操作系统的内存访问差异进行封装,使Java程序在不同硬件及操作系统上都能达到相同的并发效果...Java内存模型具有三个特性:原子性、可见性和有序性。...可见性,在java内存模型中,简单说如果一条线程更改了共享变量的值,而其他线程能马上知道这个更改,我们则说这个变量具有可见性。...JMM可以说是Java的基础,它的定义将直接影响JVM及java多线程实现的机制,要想深入了解多线程并发中的相关问题现象,对Java内存模型的深入研究是必不可少的。

944100
领券