java内存模型JMM

Java 内存模型(Java Memory Model,JMM)定义了 Java 程序中的变量、线程如何和本地内存以及主内存进行交互的规则。它主要涉及到多线程环境下的共享变量可见性、指令重排等问题,是理解并发编程中的关键概念。

核心概念:

• 本地内存/工作内存:每个线程私有的内存空间,存储该线程使用变量的副本,每个线程只能操作自己本地内存中的变量,无法直接访问其他线程的本地内存。如果线程间需要通信,必须通过主内存来进行。

• 主内存:所有共享变量的存储区域,不管该实例对象是成员变量,还是局部变量,类信息、常量、静态变量都是放在主内存中。

内存间交互操作:8种原子操作

happens-before原则:定义操作之间的可见性关系,确保前一个操作的结果对后续操作可见

JMM的关键特性:原子性、可见性、有序性

相关推荐
techdashen10 小时前
Go设计取舍之四: map不变时能否并发修改不同value
开发语言·后端·golang
小小小米粒10 小时前
阿姆达尔定律(Amdahl‘s Law)
java·开发语言
知彼解己10 小时前
Java 版本演进
java·开发语言·spring boot
风样滴男人哟10 小时前
PHP特性之反射类ReflectionClass机制
android·开发语言·php
极客先躯10 小时前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
看昭奚恤哭10 小时前
Flutter 布局核心思想
开发语言·javascript·flutter
朱容zr33313311 小时前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
IsSh9nj6q11 小时前
Python全栈应用搭建神器magic-dash .新版本介绍
开发语言·python·dash
知彼解己11 小时前
Eclipse Temurin:企业级 Java JDK 发行版的最佳实践
java·ide·eclipse
朱容zr33313311 小时前
请解释“回表”的概念。
java·前端·数据库