前言:
在Java中,有一个非常重要的关键字Synchronized
一. 定义:
java中一个关键字
二. 作用:
Synchronized修饰的方法或者代码块,同一时刻最多只有一个线程执行,只有当前线程执行完毕该代码,别的线程才会执行 。
三. 应用场景:
保证线程安全,解决多线程中的并发同步问题,具体场景如 下:
- 修饰 实例方法 / 代码块时,保护的是同一个对象方法的调用 & 当前实例对象
- 修饰 静态方法 / 代码块时,保护的是 静态方法的调用 & class 类对象
四. 原理
- 依赖
JVM实现同步 - 底层通过一个监视器对象
(monitor)完成,wait()、notify()等方法也依赖于 monitor 对象
监视器锁(monitor)的本质 依赖于 底层操作系统的互斥锁(Mutex Lock)实现