关键字synchronized和volatile比较
2016-12-14 17:09
246 查看
1.关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰变量,而synchronized可以修饰方法和代码块。目前在开发中使用synchronized关键字的比率还是比较大的。
2.多线程访问volatile不会发生阻塞,而synchronized会出现阻塞。
3.volatile能保证数据的可见性,但是不能保证原子性;而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存和公有内存中的数据同步。
4.volatile关键字是解决变量在多个线程之间的可见性;而synchronized关键字是解决多个线程之间访问资源同步性的。
所谓的线程安全包含原子性和可见性两个方面,Java的同步机制都是围绕这两个方面量保证线程安全的。
2.多线程访问volatile不会发生阻塞,而synchronized会出现阻塞。
3.volatile能保证数据的可见性,但是不能保证原子性;而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存和公有内存中的数据同步。
4.volatile关键字是解决变量在多个线程之间的可见性;而synchronized关键字是解决多个线程之间访问资源同步性的。
所谓的线程安全包含原子性和可见性两个方面,Java的同步机制都是围绕这两个方面量保证线程安全的。
相关文章推荐
- volatile关键字与synchronized关键字比较..
- synchronized 和 volatile 比较
- synchronized关键字、ReentrantLock与原子类比较
- synchronized关键字和volatile关键字
- 原子变量、volatile、synchronized的可见性和原子性比较
- 并发编程之ThreadLocal、Volatile、synchronized、Atomic关键字扫盲
- volatile、ThreadLocal、synchronized等3个关键字区别
- Java 关键字volatile 与 synchronized 作用与区别
- 多线程之volatile与synchronized的比较
- 深入比较ThreadLocal模式与synchronized关键字
- JAVA多线程之volatile 与 synchronized 的比较
- 关于native,transient,volatile,synchronized四个关键字的使用
- Java多线程之内存可见性和原子性:Synchronized和Volatile的比较
- Java关键字volatile和synchronized作用和区别
- Volatile和Synchronized关键字
- Java 并发编程(四)线程同步关键字volatile和synchronized
- synchronized和volatile比较 (r)
- java线程5 volatile和synchronized关键字 .
- Java 多线程之 synchronized 和 volatile 的比较
- Java内存模型与并发同步常用的关键字(volatile和Synchronized)