class Bob {
private static final Object locke = new Object();
private static volatile int value;
public static void fun(){
synchronized(locke){
value++;
}
}
}
这与班级同步有何不同,即synchronized(Bob.class){...}
答案 0 :(得分:19)
某些其他代码可以通过执行synchronized(Bob.class)
来破坏您的代码。如果他们这样做,您的代码突然与他们的代码争夺锁定,可能会破坏您的代码。
如果无法从需要它的对象外部访问lock
对象,则会删除该危险。