volatile上

并发编程三大特点:
可见性、原子性、有序性、
代码:
在这里插入图片描述可以发现心脏包无限运行!

Jvm简单的图形:
在这里插入图片描述栈和堆的特性?堆是存放对象(共享)、栈是属于每一个线程、堆比栈运行速度慢、原因堆可以动态分配内存、

加了Volatile:
在这里插入图片描述
Volatile为什么?原理?
在这里插入图片描述线程严格意义来说属于cpu的、
在这里插入图片描述
cpu一开始是单核,单核架构:
在这里插入图片描述
多核cpu架构:
在这里插入图片描述因写者画图不耐烦敷衍一下(凑合着看)、
他们的缓存发生了变化(L3 Cache是共享的)离cpu越近越快、越远越慢、
缓存基于什么实现的呢?缓存有很多优化的点Cache miss、为共享(高并发程序设计有提到,读者有兴趣可以看看)等等问题、
他们有两种、总线锁和缓存一致性(有兴趣的读者可以自己百度)、
硬件和内存模型的关系:
在这里插入图片描述对照写者上面的代码分析这张图;
在这里插入图片描述工作内存表示在cache高速缓存中,不同的线程中cache的变量是不一样的,上图中他们两个工作内存是互相隔离的导致访问不了,回写主内存才可见、

看一下代码没有volatile:
在这里插入图片描述为什么去掉了volatile读取到了true???
它的底层用了什么???
写者来回答,底层调用了锁(读者要是不信可以生成字节码()、汇编经行分析)、怎么生成汇编需要用Jvm参数、
Stop类生成汇编:
在这里插入图片描述对照汇编指令来看:
在这里插入图片描述shutDown方法:
在这里插入图片描述用了锁(lock)!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值