Java高并发编程实战6,通过AQS源码分析lock()锁机制

一、JVM内存区域

JVM在运行时,会将其管理的内存区域划分为方法区、堆、虚拟机栈、本地方法栈和程序计数器5个区域;

  • 方法区和堆是所有下城共享的区域;
  • 虚拟机栈、本地方法栈、程序计数器是各个线程私有的;

在这里插入图片描述

二、JVM内存模型(Java Memory Model,简称JMM)

JMM用于定义程序汇总变量的访问规则,即在JVM中如何将变量存储到内存,以及如何从内存中获取变量(此处变量指所有线程共享的变量)。

与JVM内存区域不同,JMM是从另一个角度对内存进行划分,分为主内存和工作内存。

JMM规定所有的变量都存储在主内存中,每个线程还拥有自己独立的工作内存。主内存中的变量会通过复制的方式留给线程的工作内存一个副本,供各个线程独立使用。 线程对变量的所有读写操作都是在工作内存中进行的,工作内存中的副本变量会通过JMM与主内存中的原变量保持同步。

在这里插入图片描述

三、各个线程运行期间必须遵守的规定

  1. 只能方案文自己工作内存中的变量;
  2. 无法直接访问其他线程工作内存中的变量;
  3. 可以通过主内粗间接访问
  • 34
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值