java并发机制的底层实现原理(volatile,synchronized,原子操作)

目录

volatile的应用

volatile的定义与实现原理

volatile的使用优化

synchronized的实现原理与应用

Java对象头

锁的升级与对比

偏向锁

轻量级锁

锁的优缺点对比

原子操作的实现原理

术语定义

处理器如何实现原子橾作

使用总线锁保证原子性

使用缓存锁保证原子性

Java如何实现原子橾作

使用循环CAS实现原子操作

CAS实现原子橾作的三大问题


volatile的应用

在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的 synchronized, 它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程 修改一个共享变量时另外一个线程能读到这个修改的值

如果volatile变量修饰符使用恰当 的话它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。将深入分析在硬件层面上Intel处理器是如何实现volatile的,通过深入分析帮助我们正确地 使用volatile变量。

volatile的定义与实现原理

Java语言规范第3版中对volatile的定义如下: Java编程语言允许线程访问共享变量,为了 确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言 提供了volatile, 在某些情况下比锁要更加方便。如果一个字段被声明成volatile, Java线程内存 模型确保所有线程看到这个变量的值是一致的。

在了解volatile实现原理之前

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值