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(); |