https://www.bilibili.com/video/BV1Aj411r7Zi

synchronize 是 Java 提供的一种原子性内置锁。Java 中的每个对象都可以把它当做一个同步锁来使用,这些 Java 内置的使用者看不到的锁被称为内置锁,也叫做隐式锁。synchronized 所条件的锁有以下几个特点:

| 分类 | 具体分类 | 被锁的对象 | 伪代码 |
|---|---|---|---|
| 方法 | 实例方法 | 类的实例对象 | public synchronized void method() {…….} |
| 静态方法 | 类对象 | public static synchronized void method {……} | |
| 代码块 | this对象 | 类的实例对象 | synchronized(this) {……} |
| class 对象 | 类对象 | synchronized(DemoClass.class) {……} | |
| 任意实例对象 Object | 实例对象 Object | private final Object lock = new Object(); |
