lock ,sychronized,volatile的区别

本文详细探讨了Java中lock、synchronized和volatile的关键区别。volatile保证了可见性和有序性,但不保证原子性;synchronized提供同步锁,确保原子性、可见性和有序性;而lock接口的实现如ReentrantLock提供了更灵活的控制。此外,文章还介绍了Java线程内存模型以及多线程中的原子性、可见性和有序性概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                     lock sychronizedvolatile的区别

p34   p77  p124 (内推军书)

https://blog.youkuaiyun.com/weixin_41563161/article/details/102458297重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁

https://blog.youkuaiyun.com/weixin_41563161/article/details/104117425 synchronized原理以及锁优化

1 java的线程抽象内存模型

java的线程抽象内存模型中定义了每个线程都有一份自己的私有内存,里面存放自己私有的数据,其他线程不能直接访问,而一些共享数据则存在主内存中,供所有线程进行访问。 
上图中,如果线程A和线程B要进行通信,就要经过主内存,比如线程B要获取线程A修改后的共享变量的值,要经过下面两步: 
     (1)、线程A修改自己的共享变量副本,并刷新到了主内存中。 
     (2)、线程B读取主内存中被A更新过的共享变量的值,同步到自己的共享变量副本中。


2 java多线程中的原子性、可见性、有序性</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haikuotiankongdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值