Я почав вчитися синхронізації потоків.
Синхронізований метод:
public class Counter {
private static int count = 0;
public static synchronized int getCount() {
return count;
}
public synchronized setCount(int count) {
this.count = count;
}
}
Синхронізований блок:
public class Singleton {
private static volatile Singleton _instance;
public static Singleton getInstance() {
if (_instance == null) {
synchronized(Singleton.class) {
if (_instance == null)
_instance = new Singleton();
}
}
return _instance;
}
}
Коли слід використовувати synchronized
метод і synchronized
блокувати?
Чому synchronized
блок краще synchronized
методу?