volatile在java中的应用

volatile在java中的应用

线程之间的可见性

主内存一个常量,不同线程之前保持可见性,只需要在定义常量的时候增加 volatile。

private volatile int count=1;

其中线程a和线程b通过volatile关键字保持共享数据。具体流程是当线程a从主内存中读取count=1,然后修改count=2之后刷新主内存为count=2,然后使线程b的count值失效,线程b需要再次从主内存中读取count。
之所以不同线程用工作内存,而不是直接从主内存中操作是从性能方面考虑的。

多个线程之间不能保证原子性

volatile是不能保证线程安全的,就是如果多个线程同时修改count的时候,数据就不能保证修改正确,这个时候就要依赖加锁处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

涯一涯二涯三

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

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

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

打赏作者

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

抵扣说明:

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

余额充值