class Bob {
private static final Object locke = new Object();
private static volatile int value;
public static void fun(){
synchronized(locke){
value++;
}
}
}
方法は、これはいくつか他コードがsynchronized(Bob.class)
を行うことによって、あなたを破ることができる、すなわちsynchronized(Bob.class){...}
クラスではなく静的なロックメンバーで同期するのはなぜですか?
関連したメモ:この特定の用途では、「AtomicInteger」は簡単な解決策です;-) –
は完全に一致します。 –