volitate:1、当一个进程修改了某个变量时,这个新值对其他线程时立即可见的。
2、禁止进行指令的重排序(volatile关键字能确保变量在线程中的操作不会被重排序而是按照代码中规定的顺序进行访问)
volatile 只提供了保证访问该变量,每一次读取改变量的时候都是从内存中读取,并不会使用寄存器缓存该值.
对该变量的修改,volatile 并不提供原子性的保证;
由于及时更新,volitate 可能导致另一线程访问最新变量值,无法跳出循环的情况,
多线程下,计数器必须使用保护锁
volatile:直接存取内存地址。