JMM(Java Memory Model)Java内存模型

一、JMM 简介

1、Java内存模型(Java Memory Model,JMM)是Java虚拟机定义的内存访问规范,用于屏蔽底层硬件和操作系统的内存访问差异,达到内存访问一致性的目的

2、解决多线程环境下共享变量的可见性、原子性和有序性问题,规定了共享变量如何在多线程之间共享。一个线程如何、什么时候可以看到由其他线程修改过后的共享变量的值

二、JMM 核心概念

1、主内存和工作内存

【主内存】:是JMM定义的一个存储区域,用于存储Java程序中的共享变量

【工作内存】:每个线程独有的一个存储区域,用于存储线程私有数据和共享变量的副本。各线程不能直接访问对方的工作内存,必须通过主内存进行通信

三、JMM 关键特性

1、可见性:一个线程对共享变量的修改,能够及时地被其他线程看到。JMM通过规定主内存与工作内存之间的交互操作,使用 volatile 修饰共享变量确保变量的可见性

2、有序性:Java程序在执行时,可能会出现指令重排序的现象。JMM通过规定 happens-before 规则,来确保程序执行的有序性

3、原子性:一个操作要么全部执行成功,要么全部不执行。JMM通过提供 synchronized 等同步机制,来确保操作的原子性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值