Java基础-synchronized关键字的用法(转载)

时间:2023-03-09 16:39:02
Java基础-synchronized关键字的用法(转载)

synchronized--同步

顾名思义是用于同步互斥的作用的。

这里精简的记一下它的使用方法以及意义:

  1. 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在this或者实例对象引用上面的。比如a,b同为Main类的实例化对象,a调用被同步的方法,和b调用被同步的方法,没有形成互斥。但是不同线程的a对象调用被同步的方法就被互斥了。

public synchronized void AMethod() {

        // ...

}

 

public void BMethod() {

    synchronized (this) {

            // ...

    }

}

 

  1. 不同,当synchronized修饰类名.class 或者静态方法的时候. 就算是不同对象,也会形成互斥

public
synchronized
static
void method1() {

    // ...

}

 

public
void method2() {

    synchronized (Test.class) {

     // ...

    }

}

 

 

参考文献:

Java基础-synchronized关键字的用法