java學習——併發專題——synchronized關鍵字

@小學生@發表於2019-03-04

synchronized:物件鎖,類鎖;

物件鎖:鎖的是當前物件;

public class SynObject {

    /**
     * 這種寫法表示使用synchronized關鍵鎖住的是呼叫當前方法的SynObject類的物件
     * 注意:是當前的物件
     */
    public void synObject1() {
        synchronized (this) {
            System.out.println("");
        }
    }

    /**
     * 與synObject1()方法的意思一樣
     */
    public synchronized void synObject2() {
        System.out.println("");
    }

}

 

類鎖:鎖的是類或是所有類的所有物件;

public class SynClass {

    /**
     * 這種寫法表示使用synchronized關鍵鎖住的是呼叫當前方法的類,
     * 也就是說凡是使用了當前了的物件,都會被鎖住
     */
    public synchronized static void synClass1() {
        System.out.println("");
    }

    /**
     * 與synClass1()方法的意思一樣
     */
    public synchronized static void synClass2() {
        synchronized (SynDemo.class) {
            System.out.println("");
        }
    }

}

 

相關文章