Java 中 Synchronized 的使用
同步代码块,是锁这个对象
synchronized (this){
...
}
同步实例方法,也是锁这个对象
public synchronized void fun1(){
...
}
相当于将方法里的所有语句用synchronized (this){}包裹
public void fun1(){
synchronized(this){
...
}
}
同步类, 是锁的这个类,或者说是字节码,这个类的所有对象只有这一把锁。
synchronized(ClassName.class) {
...
}
同步静态方法,也是锁这个类
public synchronized static void method() { ... }
相对于
public static void method() {
synchronized(ClassName.class) { ... }
}
参考:
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。