JMM内存模型图、线程生命周期图

JMM内存模拟图

 

 

Java虚拟机(jvm)是一个实现了跨平台的虚拟系统,因此它也有自己的内存模型,即Java内存模型(Java Memory Model, JMM)  

JMM三大特性

1.可见性

线程与线程之间的工作内存相互不可见, 不可以直接访问其他线程的工作内存、线程操作变量后存在写回到主内存延迟问题. 保证了可见性、线程操作变量后, 立刻将最新的变量值同步回到主内存中.线程使用变量 之前, 从主内存中获取最新变量的值(线程正在使用变量, 无法获取主内存中最新的值)、但是可见性不能解决线程安全问题

2.有序性

多线程执行时, 编译器, 处理器会对指令进行重新排序, 目的提高执行效率, 可能造成结果不正确、保证有序性、添加内存屏障(一组cpu指令), 防止重新排序

3.原子性

多线程执行时, 同一时刻只能一个线程操作, 该线程操作完, 其它线程中的一个线程进行操作, 以此类推

使用volatile可以解决可见性与有序性 但不能解决原子性

同步锁既可以解决可见性与有序性、还可以解决原子性        同步锁: synchronized

 线程生命周期图

 线程生命周期从新建到死亡共包含五种状态:

新建状态、就绪状态、运行状态、阻塞状态、死亡状态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值