码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-06-05 17:09:29      阅读:195      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!