volatile只具备可见性这个原子特性的关键字,它修饰的变量能让线程每次访问时候都拿到最新的数据,意味着只要它做了修改,就马上共享给每个访问它的线程;synchronized也一样具有可见性这个特点(volatile能做的工作它完全能做),不过它修饰的变量每次只能有一个线程访问(典型的互斥性吧)