首页 > 其他 > 详细

对volatile的理解

时间:2020-12-19 12:18:25      阅读:23      评论:0      收藏:0      [点我收藏+]

定义:volatile是一种轻量级的同步机制,其属性有3个:

1.保证内存数据的可见性

  正常每个线程操作数据,都是先将数据从主内存加载到自己的工作内存,在工作内存中进行读取和赋值;而volatile的作用是将数据从主内存中读出,修改后再强刷会主内存,保证其他线程可以看到修改后的数据

2.不保证原子性

  每个线程修改数据后强刷回主内存时,会造成多线程之间数据的写覆盖;可以使用原子操作类来解决(AtomicInteger等)

3.禁止指令重排

  jvm为了提高性能,编译器和处理器都会对指令重排序;多线程环境下,线程交替运行,重排序的优化可能造成数据的不可控(重排序的事例可以看单例模型中使用volatile的原因)

对volatile的理解

原文:https://www.cnblogs.com/yayin/p/14158517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!