volatile关键字--大白话大全
下文笔者讲述volatile关键字的功能说明,如下所示:
volatile关键字的功能: 保证可见性,禁止指令重排,但是不能保证原子性 可见性: 在JMM内存模型中,线程操作共享资源是先将主存中的共享资源拷贝回自己的工作内存,在工作内存中完成修改后刷回到主存, 在同步回主存之前,别的线程是不知道这个值已经被改了,当我们使用volatile修饰后,就可保证一个线程对共享资源的操作对别的线程可见 禁止指令重排: JVM 编译代码的时候,会对代码做优化,使其有更好的性能 此时就会发生指令重排(单个线程中指定乱码,不会对结果产生影响,JVM就会重排) 但是指定重排,会对多线程的结果产生影响 此时我们可使用volatile关键字来禁止指令重排
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。