Volatile保证在多个线程之间,一个线程对volatile修饰的变量的修改对另外一个线程可见,不能保证原子性,仅用再一个写线程,多个读线程的情况,主要避免的是一个线程修改了数据,其他的现成读的还是现成高速缓存的数据。
synchronized同时可以保证原子性和可见性
Volatile保证在多个线程之间,一个线程对volatile修饰的变量的修改对另外一个线程可见,不能保证原子性,仅用再一个写线程,多个读线程的情况,主要避免的是一个线程修改了数据,其他的现成读的还是现成高速缓存的数据。
synchronized同时可以保证原子性和可见性