synchronized解析一:使用详解

synchronized的五种使用方式

public class SynchronizedTest {
    public static final Object lock = new Object();

    // 锁的是SynchronizedTest.class对象
    public static synchronized void sync() {
    }

    public static void sync2() {
        // 锁的是SynchronizedTest.class对象
        synchronized (SynchronizedTest.class) {
        }
    }

    // 锁的是当前实例this
    public synchronized void sync3() {
    }

    public void sync4() {
        // 锁的是当前实例this
        synchronized (this) {
        }
    }

    public void sync5() {

        // 锁的是指定对象lock
        synchronized (lock) {
        }
    }
}
posted @ 2021-06-10 19:34  gaowei656  阅读(50)  评论(0)    收藏  举报