【java内存模型】

一、定义

java内存模型(java memory model,简称JMM),它定义了多线程之间对共享变量的可见性以及在对共享变量进行操作时如何进行同步。

二、多线程之间通过内存模型进行通信的原理

在这里插入图片描述

从上图看出,线程A与线程B之前的通信包括两步

1、线程A将本地内存中修改的共享变量同步到主内存中

2、线程B去主内存中获取共享变量更新后的值

三、JVM 如何实现JMM

1、在JVM中每个线程都有自己的线程栈,对于方法的调用会存在栈中,本地变量存在栈中,对象都存储在堆区

在这里插入图片描述

2、

本地变量如果是基础类型存在线程栈中

本地变量如果是引用类型,对象的引用存在线程栈中,对象还是存在堆中,

对象的成员变量无论是基本类型还是引用类型都存在堆中

对象的成员方法,这些方法包括的本地变量都存储在线程栈中


堆中的对象被多线程共享,本地变量每个线程都会拷贝一份到自己的线程栈中
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值