Volatile与Synchronized的区别?
来源:互联网 发布:java反射实现原理 编辑:程序博客网 时间:2024/05/18 02:27
volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.
volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.
volatile仅能实现变量的修改可见性,但不具备原子特性,而synchronized则可以保证变量的修改可见性和原子性.
volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.
volatile标记的变量不会被编译器优化,而synchronized标记的变量可以被编译器优化.
阅读全文
1 0
- volatile与synchronized的区别
- volatile与synchronized的区别
- volatile与synchronized的区别
- volatile与synchronized的区别
- synchronized与volatile的区别
- volatile与synchronized的区别
- volatile与synchronized的区别
- volatile与synchronized的区别
- Volatile与Synchronized的区别?
- volatile与synchronized的区别
- synchronized与volatile的区别
- volatile与synchronized的区别
- volatile 与 synchronized 区别
- volatile和synchronized的区别与联系
- java synchronized与volatile的区别
- volatile和synchronized的区别与联系
- volatile和synchronized的区别与联系
- synchronized 与 volatile的区别以及用处
- BZOJ1257: [CQOI2007]余数之和sum【分块】
- bzoj1510[POI2006]Kra-The Disks 二分
- mysql-max_allowed_packet
- 秒杀系统的架构解决之道
- Windows CE CAB 向导遇到了错误。有关更多信息,请参阅输出窗口
- Volatile与Synchronized的区别?
- A
- python numpy 学习笔记(9)
- Java读取excel表格
- 程序员有七个等级?你又属于哪个等级呢?
- singleton的饿汉式,懒汉式及关于双检锁的线程安全模式
- Java集合-ConcurrentHashMap工作原理和实现JDK7
- NSNUmber,NSValue,NSNull
- FPGA 主流芯片选型指导和命名规则(一)