1、做用java
一、保证内存可见性程序员
二、防止指令重排多线程
此外需注意volatile并不保证操做的原子性。jvm
指令重排序是JVM为了优化指令,提升程序运行效率,在不影响单线程程序执行结果的前提下,尽量地提升并行度。编译器、处理器也遵循这样一个目标。注意是单线程。多线程的状况下指令重排序就会给程序员带来问题。优化
java文件被编译成为了.class文件的时候,其实就是转化为了一堆的jvm指令。线程