volatile关键字解析

首先,对于类的成员变量,在多线程程序中每个线程都持有此成员变量的一个副本,又由于主内存的io速度比较慢,所以通常都会在主内存与程序线程之间加上一个高速缓存,程序线程每次都是先从自己高速缓存中存取数据,这就导致不同线程操作的都是自己的成员变量副本,而出现多线程安全问题,而volatile关键字的作用就是强制让每个线程都直接去操作主内存,但是volatile依然不能保证类似i++这种自增数据的多线程安全,所以尽量不要使用volatile,而选择使用synchronized关键字!