Java中的volatile关键字

 分类:Android, Java 阅读 (1,213)  Add comments
8月 062017
 

volatile保证共享变量在多程中的可见性

即一个共享变量在线程1中被修改在,在线程2中读取这个变量时,立即得到最新的值

volatile不能保证变量的原子性

比较经典的一个例子就是用一个boolean变量判断线程是否停止的例子,如下:

如果isrunning不加volatile修饰,thread2一直无法停止,因为无法获取到isrunning的更新状态。

volatile修饰对象

被volatile修饰的对象,当对象内所有成员的值变化时都会更新到主存中, 以确保成员的可见性?(未亲自测试过)

一些其他的见解:

摘自:https://bbs.csdn.net/topics/390413948?page=1

 

打赏
 Posted by on 2017-08-06