synchronized关键字作用对象

2019-05-30  本文已影响0人  Merlin_720

1.同步一个代码块

public void func(){
         synchronized(this){
                //......
          }
}

它只作用于一个对象,如果调用两个对象的同步代码块,就不会进行同步。

2.同步一个方法

public synchronized void func(){
        //......
}

他和同步一个代码块是一样的, 作用于同一个对象。

3.同步一个类

public void func() {
    synchronized (SynchronizedExample.class) {
        // ...
    }
}

同步作用于这个类,也就是说两个线程调用同一个类的不同对象上的这种同步语句,也会进行同步。

4.同步一个静态方法

public synchronized static void func(){
         //......
}

同样的作用于一个类

上一篇 下一篇

猜你喜欢

热点阅读