同步机制中monitor锁的实现原理及细节分析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1800个文字,预计阅读时间需要8分钟。
目录+获取和释放+monitor+锁的时机+javap+命令查看反汇编的结果+同步代码块+同步方法+获取和释放+monitor+锁的时机+关于synchronized背后的monitor锁。+我们都知道,最简单的同
目录
- 获取和释放 monitor 锁的时机
- 用 javap 命令查看反汇编的结果
- 同步代码块
- 同步方法
获取和释放 monitor 锁的时机
本文我们研究下 synchronized 背后的 monitor 锁。
我们都知道,最简单的同步方式就是利用 synchronized 关键字来修饰代码块或者修饰一个方法,那么这部分被保护的代码,在同一时刻就最多只有一个线程可以运行,而 synchronized 的背后正是利用 monitor 锁实现的。所以首先我们来看下获取和释放 monitor 锁的时机,每个 Java 对象都可以用作一个实现同步的锁,这个锁也被称为内置锁或 monitor 锁,获得 monitor 锁的唯一途径就是进入由这个锁保护的同步代码块或同步方法,线程在进入被 synchronized 保护的代码块之前,会自动获取锁,并且无论是正常路径退出,还是通过抛出异常退出,在退出的时候都会自动释放锁。
本文共计1800个文字,预计阅读时间需要8分钟。
目录+获取和释放+monitor+锁的时机+javap+命令查看反汇编的结果+同步代码块+同步方法+获取和释放+monitor+锁的时机+关于synchronized背后的monitor锁。+我们都知道,最简单的同
目录
- 获取和释放 monitor 锁的时机
- 用 javap 命令查看反汇编的结果
- 同步代码块
- 同步方法
获取和释放 monitor 锁的时机
本文我们研究下 synchronized 背后的 monitor 锁。
我们都知道,最简单的同步方式就是利用 synchronized 关键字来修饰代码块或者修饰一个方法,那么这部分被保护的代码,在同一时刻就最多只有一个线程可以运行,而 synchronized 的背后正是利用 monitor 锁实现的。所以首先我们来看下获取和释放 monitor 锁的时机,每个 Java 对象都可以用作一个实现同步的锁,这个锁也被称为内置锁或 monitor 锁,获得 monitor 锁的唯一途径就是进入由这个锁保护的同步代码块或同步方法,线程在进入被 synchronized 保护的代码块之前,会自动获取锁,并且无论是正常路径退出,还是通过抛出异常退出,在退出的时候都会自动释放锁。

