java内存模型(JMM)是线程间通信的控制机制,jmm定义了主内存和线程之间的抽象关系,线程之间的共享变量存储在主内存(main-memory)中,每个线程都有一个私有的本地内存(local memory)
,本地内存中存储了该线程以读/写共享变量的副本。本地内存是jmm的一个抽象概念,并不真实存在。他涵盖了缓存,写缓存区,寄存器以及其他的硬件和编译器优化。java内存模型的抽象示意图如下
从图中可知A 和B两个线程如果通信的话
首先A线程将共享变量刷到主内存中
其次B线程到主内存中加载更新共享变量
这里写的说明的非常好:http://www.infoq.com/cn/articles/java-memory-model-1
相关推荐
《深入理解Java虚拟机》是一本深度探讨Java虚拟机(JVM)的著作,涵盖了JVM性能调优、内存模型以及虚拟机原理等多个关键领域。本文将基于这些主题,详细阐述其中的重要知识点。 首先,我们要了解Java虚拟机(JVM)...
总的来说,JVM原理、JVM调优、JVM内存模型和JAVA并发是Java程序员和系统管理员需要深入了解的知识点,因为它们直接影响到Java程序的性能和稳定性。了解这些知识点有助于开发者编写性能更优的代码,并在生产环境中对...
以下将详细介绍JVM Full GC的相关知识点。 1. **理解JVM内存结构**:Java内存主要分为堆内存(Heap)和非堆内存(Non-Heap),其中堆内存又分为新生代(Young Generation)、老年代(Tenured Generation或Old ...
### Java 虚拟机JVM内存模型知识点 #### 1. JVM概述 ##### 1.1 Java的特性与JVM的应用 Java语言的特性包括跨平台性、面向对象、安全性等。JVM是Java程序能够跨平台运行的关键,它负责将Java源代码转换成与平台无关...
- **Java内存模型**:包括堆内存、栈内存、方法区、本地方法栈和程序计数器等部分。 - **垃圾回收(GC)原理**:了解如何自动回收不再使用的对象,以及不同垃圾收集器的工作机制。 - **内存泄漏**:理解内存泄漏...
标题和描述中提及的知识点主要围绕Java内存模型(JMM),JVM内存结构,包括堆栈讲解,以及本机内存管理等内容。以下是对这些知识点的详细阐述: ### Java内存模型(JMM) #### JMM简介 Java内存模型(JMM)是Java虚拟机...
本文根据《深入理解Java虚拟机》书籍内容及作者理解,总结了JVM相关的知识点,分享如下: 一、JVM内存区域 JVM在运行时,将内存空间分为若干个区域,主要包括方法区、堆内存、虚拟机栈、本地方法栈、程序计数器五...
因此,Java内存模型是多线程编程中必须掌握的知识点之一。在实际应用中,程序员通常会利用volatile关键字、synchronized关键字或Java并发包中的高级同步工具来确保线程之间的同步和共享变量的可见性。 在编写并发...
本文将对Java内存模型进行知识汇总,帮助读者更好地理解和掌握相关知识点。 首先,内存模型的概念是与计算机硬件密切相关的。计算机执行程序时,CPU执行指令并需要频繁地与数据进行交互,而这些数据存储在主存(即...
根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨与Java虚拟机(JVM)相关的多个核心知识点。以下是对这些主题的详细阐述: ### Java虚拟机(JVM)概述 Java虚拟机(JVM)是一种用于执行Java字节码的...
1. **JVM内存模型**:JVM内存主要分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。了解每个区域的作用和配置参数...
在Java编程语言中,JVM(Java虚拟机)是一个至关重要的组成部分,它负责运行Java程序。JVM垃圾回收是其核心功能之一,旨在自动...通过对这些知识点的深入掌握,开发者可以更好地诊断和解决问题,提升系统的整体性能。
这个路径涵盖了从应用框架到底层硬件的关键环节,让我们逐步解析其中涉及的知识点: 1. **框架**:框架是开发者在特定编程语言中编写软件的一种结构化方法,它提供了基础结构和约定,帮助快速构建应用程序。Java...
Java虚拟机(JVM)是Java程序运行的基础,它提供了平台无关性,使得...这些知识点涵盖了JVM的基础和进阶内容,对于Java开发者来说,理解和掌握它们对于提升编程能力、解决实际问题以及在面试中脱颖而出都具有重要意义。
下面,我们将深入探讨JVM的一些关键知识点。 1. **JVM架构**: - **类加载器**:负责加载.class文件,确保程序运行所需的类能够被找到并加载到内存中。 - **运行数据区**:包括堆、方法区、虚拟机栈、本地方法栈...
本资料"JVM 调优演示-JVM.zip"包含了一个名为"JVM-master"的项目,我们可以从以下几个方面来探讨JVM调优的相关知识点: 1. **垃圾收集器**:JVM中的垃圾收集器负责自动回收不再使用的对象所占用的内存。不同的垃圾...
下面,我们将深入探讨JVM调优的相关知识点。 1. **JVM内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(PC Register)。...
volatile关键字是JMM中一个重要的知识点,它保证了变量的可见性,但不保证原子性,并能禁止指令重排,从而保证了有序性。volatile关键字通常用于实现线程间的状态通信。 #### CAS(Compare-And-Swap) CAS是一种...