Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Java内存模型(JMM)深度解析:原理、特性与代码实践 PDF 下载


分享到:
时间:2024-10-25 10:25来源:http://www.java1234.com 作者:转载  侵权举报
Java内存模型(JMM)深度解析:原理、特性与代码实践
失效链接处理
Java内存模型(JMM)深度解析:原理、特性与代码实践 PDF 下载

 
 
相关截图:
 
主要内容:


Java 内存模型(Java Memory Model,简称 JMM)是 Java 并发编程中的核心概念,它定义了

Java 程序中多线程间共享变量的访问规则。理解 JMM 对于编写正确、高效的并发程序至关 重要。本文将深入探讨 JMM 的原理、特性以及如何在实际编码中应用 JMM。

## 1. JMM 的原理

JMM 定义了主内存(Main Memory)和工作内存(Working Memory)的概念,以及它们之 间的交互规则。

### 1.1 主内存与工作内存

- **主内存**:所有线程共享的数据区域,包括实例字段、静态字段和数组元素等。

- **工作内存**:每个线程私有的数据区域,存储了该线程使用的变量的副本。 线程对变量的所有操作都必须在工作内存中进行,不能直接读写主内存。这使得 JMM 在不 同的硬件和操作系统上都能保证一致的访问结果。

### 1.2 交互规则

JMM 规定了以下八种操作来完成主内存和工作内存之间的数据交互:

1. **lock(锁定)**:将主内存中的变量标记为线程独占状态。

2. **unlock(解锁)**:解除变量的锁定状态。

3. **read(读取)**:从主内存中读取变量值到工作内存。

4. **load(载入)**:将 read 操作读取的值放入工作内存的变量副本中。

5. **use(使用)**:将工作内存中的变量值传递给执行引擎。

6. **assign(赋值)**:将值赋给工作内存中的变量。

7. **store(存储)**:将工作内存中的变量值传送到主内存。

8. **write(写入)**:将 store 操作的值写入主内存的变量中。

## 2. JMM 的三个特性

JMM主要围绕以下三个特性建立:原子性(Atomicity)、可见性(Visibility)和有序性(Ordering)。

### 2.1 原子性 原子性是指操作是不可分割的,要么全部执行,要么全部不执行。JMM 通过原子类(如

`AtomicInteger`)和`synchronized`关键字来保证操作的原子性。



 


------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐