Volatile可以看做是一个轻量级的synchronized,它可以在多线程并发的情况下保证变量的“可
见性”(什么是可见性?就是在一个线程的工作内存中修改了该变量的值,该变量的值立即能回
显到主内存中,从而保证所有的线程看到这个变量的值是一致的),它的开销比synchronized小、
使用成本更低,虽说这个Volatile关键字可以解决多线程环境下的同步问题,不过这也是相对的,
因为它不具有操作的原子性,也就是它不适合在对该变量的写操作依赖于变量本身自己。举个最
简单的栗子:在进行计数操作时count++,实际是count=count+1;,count最终的值依赖于它本身
的值。所以使用volatile修饰的变量在进行这么一系列的操作的时候,就有并发的问题