首页 > 其他 > 详细

深入理解Atomic原子操作和volatile非原子性

时间:2018-03-03 10:14:19      阅读:382      评论:0      收藏:0      [点我收藏+]

原子操作可以理解为: 一个数,很多线程去同时修改它,不加sync同步锁,就可以保证修改结果是正确的

Atomic正是采用了CAS算法,所以可以在多线程环境下安全地操作对象。

volatile是Java的关键字,官方解释:volatile可以保证可见性、顺序性、一致性。

可见性:volatile修饰的对象在加载时会告知JVM,对象在CPU的缓存上对多个线程是同时可见的。

顺序性:这里有JVM的内存屏障的概念,简单理解为:可以保证线程操作对象时是顺序执行的,详细了解可以自行查阅。

一致性:可以保证多个线程读取数据时,读取到的数据是最新的。(注意读取的是最新的数据,但不保证写回时不会覆盖其他线程修改的结果)

深入理解Atomic原子操作和volatile非原子性

原文:https://www.cnblogs.com/stanljj/p/8495787.html

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