1.volatile不需要加锁,是线程同步的轻量实现,不会阻塞线程,性能比synchronized好。
2.volatile是能修饰变量,而synchronized能修饰方法和代码块。
3.volatile能保证数据的可见性和有序性,但是无法保证原子性,而synchronized能保证有序性,可见性和原子性。
4.volatile主要解决变量在多个线程之间的可见性,synchronized主要解决多个线程访问资源的同步性。
1.volatile不需要加锁,是线程同步的轻量实现,不会阻塞线程,性能比synchronized好。
2.volatile是能修饰变量,而synchronized能修饰方法和代码块。
3.volatile能保证数据的可见性和有序性,但是无法保证原子性,而synchronized能保证有序性,可见性和原子性。
4.volatile主要解决变量在多个线程之间的可见性,synchronized主要解决多个线程访问资源的同步性。