尽管各类框架 , 中间件已经尽可能的处理多的线程并发细节,让程序员在编码时更注重业务逻辑, 但是了解一些并发内幕比不可少.
在实际硬件中的并发问题跟jvm虚拟机中的问题有一些相似之处. 任何任务都不是光靠计算才能完成, 最起码得与内存有交互,比如取运算数据,存储结果等等,由于计算机的存储设备与处理器的计算能力有几个数量级的差别, 所以计算机不得不加入一个读写尽可能接近处理器运算速度的告诉缓存(cache) 来作为内存与处理器之间的缓冲: 将运算需要的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步到内存中,这样处理器就无需等待缓慢的内存读写了.
JMM(java 内存模型)
java内存模型规定了所有的变量都存储在主内存中,每条线程有自己的工作内存,工作内存中保存了该线程使用到的变量的主内存副本拷贝, 线程对变量的所有操作,读取,赋值等都必须在公共内存中进行,不能直接读写主内存中的变量.
一般主内存中包括了 实例字段, 静态字段, 构成数组的对象的元素.
工作内存中有局部变量与方法参数, 为各个线程私有, 所以不存在竞争问题,不会被共享.
不同线程之间无法直接访问其他线程工作内存中的变量,线程间的传递均需要通过主内存来完成.
分享到:
相关推荐
java内存模型和线程安全,详细解析java的 堆栈模型和线程机制
Java内存模型是Java虚拟机规范中定义的一部分,它规定了Java程序中变量的读写行为,以及线程之间的交互规则。理解Java内存模型对于编写正确、高效的多线程程序至关重要。在Java 5之前,Java内存模型的描述比较模糊,...
综上所述,Java内存模型是一个复杂的系统,它涉及了线程间的通信与同步、共享变量的访问规则、重排序以及内存屏障等多个方面。为了编写出正确的多线程程序,深入理解Java内存模型是不可或缺的。Java内存模型的规则和...
volatile关键字是Java内存模型中一个非常重要的概念,它保证了变量的可见性,即任何线程对该变量的修改都会立即被其它线程得知,但并不保证操作的原子性。 ### 锁机制 在Java中,锁是一种同步机制,用来控制多个...
Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了程序中各个线程如何访问和修改共享变量,以及如何确保数据的一致性。深入理解Java内存模型对于编写高效的并发程序至关重要。本文...
JSR-133 :Java TM 内存模型与线程规范
Java内存模型(JVM Memory Model,简称JMM)是Java平台中的一个重要概念,它定义了在多线程环境下,如何在共享内存中读写变量的行为。JMM的主要目标是确保多线程环境下的可见性、有序性和原子性,从而避免数据不一致...
Java线程-Java内存模型是Java并发编程中的关键概念,它描述了多个线程如何共享和访问内存资源,以及如何保证数据的一致性和安全性。Java内存模型(JMM)是Java虚拟机规范的一部分,用于定义程序中各个线程对共享变量...
标题“JSR133中文版.pdf”指向了一个文档,该文档是Java内存模型与线程规范的中文翻译版。JSR代表Java Specification Requests,这是Java社区流程中提出的一个规范请求编号,它针对特定主题定义了一套标准或规范。在...
Java内存模型(Java Memory Model,简称JMM)是Java虚拟机(JVM)规范中定义的一种内存模型,它涉及了线程之间共享变量的可见性问题。在并发编程中,理解Java内存模型对于编写正确的多线程程序至关重要。 首先,...
为了确保线程间数据的一致性,Java内存模型规定了一系列复杂的规则来管理线程与共享变量之间的交互过程。 ##### 主内存与工作内存 - **主内存**:存储着各个线程共享的数据,其中每个共享变量都有一份master copy...
### Java内存模型(有助理解多线程) #### JMM简介 Java内存模型(JMM,Java Memory Model)是Java虚拟机规范中一个重要的概念,它规定了程序中各种变量(包括实例字段、静态字段和数组元素)的访问规则,以及在...
title: 第12章 Java内存模型与线程 12.1 概述- 7 深入理解Java虛拟机:JVM高级特性与最佳实践(第3版)- 5第五部分 高效并发- 第1
Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了线程如何共享和访问内存,以及在并发编程中如何处理数据一致性的问题。理解JMM对于编写高效、线程安全的Java代码至关重要。 1. ...
Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了线程如何共享和访问内存,以及在多线程环境中如何保证数据一致性。理解JMM对于编写高效、正确且线程安全的Java代码至关重要。 ...
Java内存模型(Java Memory Model,JMM)是Java平台中非常关键的概念,它定义了线程如何共享和访问内存中的数据,以及在多线程环境下如何保证数据的一致性。这本书"深入理解Java内存模型"显然是为了帮助读者深入探讨...
### C++09内存模型与多线程编程 #### 一、引言 随着多核处理器的普及,多线程编程成为了现代软件开发中的一个重要组成部分。C++作为一门广泛使用的编程语言,在C++09标准中引入了一系列重要的新特性,其中最显著的...
Java内存模型(Java Memory Model, JMM)是Java虚拟机(JVM)的一部分,用于规定程序中的各种变量(包括实例字段、静态字段和数组元素等)在多个线程共享内存中的读写行为。JMM的主要目的是确保所有线程能够看到一致...
JAVA内存模型与垃圾回收是Java开发中至关重要的概念,它们直接影响到程序的性能和稳定性。首先,我们来看看Java内存模型。 Java内存模型,通常被称为JVM内存模型,它定义了程序中不同部分如何访问和共享数据。在...