1.同步一个代码块
public void func(){
synchronized(this){
//......
}
}
它只作用于一个对象,如果调用两个对象的同步代码块,就不会进行同步。
2.同步一个方法
public synchronized void func(){
//......
}
他和同步一个代码块是一样的, 作用于同一个对象。
3.同步一个类
public void func() {
synchronized (SynchronizedExample.class) {
// ...
}
}
同步作用于这个类,也就是说两个线程调用同一个类的不同对象上的这种同步语句,也会进行同步。
4.同步一个静态方法
public synchronized static void func(){
//......
}
同样的作用于一个类
网友评论