volatile关键字和synchronized区别如下: 1、volatile关键字只能修饰实例变量和类变量,而synchronized关键字可以修饰方法和代码块。 2、volatile可以保证数据的可见性,但是并不保证原子性,也就是说并不能保证线程安全;而synchronized是一种排他的机制,可以实现线程安全。