Synchronized的用法

Synchronized的大概有4中用法java

1.修饰一个方法,如:this

public synchronized void count(){

}

在这种状况下,一个对象一次只能有一个线程能够访问该方法。若是是类的不一样实现对象,访问同一接口不会受到影响。若是该类中有多个方法都添加了synchronized方法,则一个对象调用其中一个synchronized方法时,该对象的其余线程不容许调用其余synchronized方法线程

2.修饰一个代码块,如code

public void count(){
    synchronized(this){

    }
}

在这种状况下,同一个对象,一次只能有一个线程访问代码块中的代码对象

3.修饰一个静态方法,如接口

public synchronized static void count(int time){
        
}

因为静态方法是属于类的,因此该类的全部实现对象,一次只能有一个线程使用该方法class

4.修饰一个类,如方法

public class ThreadSync{

public void count(int time){
        synchronized (ThreadSync.class){
        }
}
}

在这种状况下,该类的全部实现对象,一次只能有一个线程访问代码块中的代码im

相关文章
相关标签/搜索