专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 问答 技术问答 volitile关键字的作用,原理?

volitile关键字的作用,原理?

酸酸de快乐已回答

Java 程序员,语法不忖慮。

保证数据的可见性,也就是当使用了volitile的修饰变量的时候,只要当这个变量有改变就会从该线程的本地内存中的共享变量刷新到主内存中,保证了主内存中的数据一直都是最新的数据,如果是读一个volitile的数据的时候,JMM会把该线程相对应的本地内存变量置为无效,因为该本地变量无效了,所以就会去主内存中获取最新的数据

防止指令进行重排序,因为JVM在设计的时候为了最大化的利用CUP的效率,他规定了在不影响正常的输出结果的情况下,所有的指令都是乱序的,为了防止普通的读写操作和volitile修饰的变量的读写操作的区别,在有volitile修饰的变量的读写的时候都会加上内存屏障来防止指令重排序

volitile的致命缺点:

不支持原子性,但是synchronized支持原子性,也可以间接保证可见性

浏览1,097技术问答
2021-08-12 11:29:34

聚焦热点问题
时时免费答疑

累计0人询问

极速问
  >>其他人还看过
更多问答

Java实验班

0学费 专业学前测评

Java就业班

围绕企业 直达就业

Java夜校班

业余时间学 超高性价比

Java架构师班

升职加薪 快速变现

返回顶部