2.5总结

微信8.0状态 楚门的世界(无水印自取)

2.5问题总结

volatile是什么

是java虚拟机提供的轻量级 同步机制

三大特性  

1.保证可见性

2.不保证原子性

3.禁止指令重排

 

 

JMM内存模型值可见性

jmm概述

特性  

1.可见性

2.原子性

3.volatile代码实现可见性+原子性

4.有序性

 

可见性代码说明

volatile不保证原子性

指令重排  

所谓指令重排就是 你写的是123456789

但是源码在走的时候 可能会1423415

类似高考 监考老师会说先把会做的做了 一个道理

 

 

正常情况下 1234  

多线程下结果不一样

底层重排后  2134

1324 以此类推

语句四不可以成为第一条的  有些虎子就问为什么呢

处理器在进行重排序的时候必须要考虑奥指令之间的数据依赖性啊 虎子

y 没有先声明 啊  

第二个案例

你在哪里用volatile ?

单例模式在多线程的环境下可能存在存在问题

1.单例模式(单机版的单例模式)

懒汉  饿汉模式

结果

并发多线程后。情况发生了变化

多线程访问main方法

十个线程打印出五个东东  

单机版这样解决  锁

2.读写锁  缓存

3.cas看底层分析  ouc大规模使用到了volatile

 

 

 

微信8.0状态 楚门的世界(无水印自取)

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值