首页 > 编程语言 > 详细

Java千百问_03基础语法(014)_volatile关键字有什么用

时间:2016-06-05 17:09:01      阅读:155      评论:0      收藏:0      [点我收藏+]

点击进入_更多_Java千百问

1、volatile关键字有什么用

volatile是java语言的关键字,是变量修饰符。它是被设计用来修饰被不同线程访问和修改的变量。

volatile的作用是: 作为指令关键字,确保本条指令不会被编译器优化,且应用的所有线程读取这个变量的值是一致的

简单的说,就是禁止编译器对代码进行优化,且强迫所有线程从共享内存读取该变量(而不是读取寄存器中的备份),变量发生改变时强行存入共享内存

java内存模型需要具有以下规则:原子性(Atomicity)、可见性(Visibility)、可排序性(Ordering)。
用volatile修饰的变量,就会具有可见性,且不允许线程内部缓存和重排序,但是它不能使变量具有原子性

了解java内存模型看这里:java内存模型是什么样的
在目前多线程频繁使用的年代,并不建议使用这种可靠性低、且对开发者或者场景要求高的方式来完成多线程的操作,由于volatile很容易被误用于进行原子性操作,如果使用不当则会错误频出

Java千百问_03基础语法(014)_volatile关键字有什么用

原文:http://blog.csdn.net/ooppookid/article/details/51589785

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