synchronized关键字详解 --Java并发编程的艺术
2017-04-26 12:17
531 查看
1.当synchronized修饰方法时候,锁定的是当前方法所在的对象
2.当synchronized修饰static方法时是,锁定的是当前类的Class对象。
3.当synchronized作用于同步代码块时,锁定的是synchronized(object) 括号里的对象
Synchonized在JVM里的实现原理:
JVM 基于进入和退出Monitor对象来实现方法同步和代码块同步。
代码块同步:使用monitorenter和monitorexit指令实现
方法同步:同样可以使用这两个指令实现
每一个对象都有一个monitor。monitorenter与monitorexit是成对出现的。monitorenter指令是在编译后插入到同步代码块的开始位置。monitorexit插入到方法结束处或异常处。
当线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。
2.当synchronized修饰static方法时是,锁定的是当前类的Class对象。
3.当synchronized作用于同步代码块时,锁定的是synchronized(object) 括号里的对象
Synchonized在JVM里的实现原理:
JVM 基于进入和退出Monitor对象来实现方法同步和代码块同步。
代码块同步:使用monitorenter和monitorexit指令实现
方法同步:同样可以使用这两个指令实现
每一个对象都有一个monitor。monitorenter与monitorexit是成对出现的。monitorenter指令是在编译后插入到同步代码块的开始位置。monitorexit插入到方法结束处或异常处。
当线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。
相关文章推荐
- 并发编程学习总结(七) :java中synchronized关键字使用详解(1)
- Java并发编程之同步关键字synchronized
- java并发编程之Synchronized关键字
- Java 多线程并发编程之 Synchronized 关键字
- java编程思想笔记-并发之并发锁synchronized详解(二)
- Java 多线程并发编程之 Synchronized 关键字
- Java并发编程札记-(一)基础-06synchronized详解
- Java 多线程并发编程之 Synchronized 关键字
- Java并发编程的艺术(八)——闭锁、同步屏障、信号量详解
- synchronized的实现原理-java并发编程的艺术读书笔记
- Java 多线程并发编程之 Synchronized 关键字
- Java并发编程:volatile关键字解析
- 【Java编程】Java关键字final使用详解
- Java 多线程(六) synchronized关键字详解
- Java关键字synchronized详解
- Java 多线程(六) synchronized关键字详解
- Java 多线程(六) synchronized关键字详解
- Java并发编程:volatile关键字解析
- Java并发编程:volatile关键字解析
- java之synchronized关键字使用详解