volatile关键字--大白话大全

娜扎 Java面经 发布时间:2022-05-14 23:16:06 阅读数:6212 1
下文笔者讲述volatile关键字的功能说明,如下所示:
 
volatile关键字的功能:
   保证可见性,禁止指令重排,但是不能保证原子性

可见性:
	在JMM内存模型中,线程操作共享资源是先将主存中的共享资源拷贝回自己的工作内存,在工作内存中完成修改后刷回到主存,
	 在同步回主存之前,别的线程是不知道这个值已经被改了,当我们使用volatile修饰后,就可保证一个线程对共享资源的操作对别的线程可见

禁止指令重排:
    JVM 编译代码的时候,会对代码做优化,使其有更好的性能
	 此时就会发生指令重排(单个线程中指定乱码,不会对结果产生影响,JVM就会重排)
	 但是指定重排,会对多线程的结果产生影响
	 此时我们可使用volatile关键字来禁止指令重排
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202205/16525426693373.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者