synchronize的用法 java中volatile和synchronize的区别和比较?
java中volatile和synchronize的区别和比较?1. Volatile是线程同步的轻量级实现,因此Volatile的性能优于synchronize;Volatile只能用来修改变量,s
java中volatile和synchronize的区别和比较?
1. Volatile是线程同步的轻量级实现,因此Volatile的性能优于synchronize;Volatile只能用来修改变量,synchronize可以用来修改方法和代码块。随着JDK技术的发展,同步在执行效率上会有很大的提高,所以同步在项目的过程中还是比较普遍的。对volatile的多线程访问将不会阻塞;而同步将阻塞;
3。Volatile可以保证私有内存和主内存之间变量的同步,但不能保证变量的原子性;同步可以保证变量的原子性;
4。Volatile是多线程间变量的可见性;synchronize是多线程间访问资源的同步;对于Volatile修改的变量,可以解决读取时变量的可见性问题,但不能保证原子性。对于多线程访问同一实例变量,需要锁同步。