JUC并发编程与源码分析学习笔记(三)

目录

五十六、JMM之入门简介

五十七、JMM之学术定义和作用

五十八、JMM之三大特性

五十九、JMM之多线程对变量的读写过程

六十、JMM之happens-before-上集

六十一、JMM之happens-before-下集


五十六、JMM之入门简介

Java内存模型之JMM

1、先从大厂面试题开始

①、你知道什么是Java内存模型JMM吗?

②、JMM与volatile它们两个之间的关系?(下一章详细讲解)

③、JMM有哪些特性or它的三大特性是什么?

④、为什么要有JMM,它为什么出现?作用和功能是什么?

⑤、happens-before先行发生原则你有了解过吗?

2、计算机硬件存储体系

计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存,到CPU。

一般对应的程序的操作就是从数据库查数据到内存然后到CPU进行计算

3、推导出我们需要知道JMM

五十七、JMM之学术定义和作用

Java内存模型Java Memory Model

JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定和规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性、可见性和有序性展开的。

原则:

JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的

能干嘛?

1、通过JMM来实现线程和主内存之间的抽象关系。

2、屏蔽各个硬件平台操作系统的内存访问差异以实现让Java程序在各个平台下都能达到一致的内存访问效果

五十八、JMM之三大特性

JMM规范下,三大特性

可见性:是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道该变更,JMM规定了所有的变量都存储在主内存中。

在高并发多线程的情况下,内存条上面的数据多个线程假设来读取、来访问,某个线程把它给改了,它需要把它的修改结果刷新回主物理内存,它怎么让大家知道现在主物理内存里面的数据已经变了,怎么让大家收到这个通知呢&#x

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值