Synchronized
作用:阻塞线程,保证同一时刻最多只有1个线程执行。
原理:依赖 JVM 实现同步,底层通过一个监视器对象(monitor)完成, wait()、notify() 等方法也依赖于 monitor 对象。
使用:Synchronized 修饰 代码块、类的实例方法 & 静态方法
Synchronized同步锁的类型:
- 对象锁:Synchronized代码块类的实例对象。锁的对象:实例对象
- 方法锁:Synchronized修饰的方法。
- 类锁:Synchronized修饰的静态方法/代码块。锁的对象:calss类对象
特点:
- 保证原子性、可见性、有序性。
- 可重入性
- 重量级