я проходил через шаблон проектирования и столкнулось с Singleton PatternSingleton Pattern в Java
class SingletonPattern implements Runnable {
private static SingletonPattern single=null;
private SingletonPattern() { }
public synchronized static SingletonPattern getInstance() {
if(null==single) {
single=new SingletonPattern();
}
return single;
}
}
Теперь я понимаю, что синхронизируется поможет, что две нити не могут получить доступ к методу GetInstance но поправьте меня, если я ошибаюсь, две разные объект будет иметь две блокировки, каждая из которых имеет один. Другой поток можно запустить из объекта anther и получить затем доступ к методу getInstance(), таким образом, мы можем иметь два объекта.
Замок приобретается здесь не по типу объекта. – NINCOMPOOP
его метод «статической синхронизации», поэтому блокировка будет получена на объекте класса «SingletonPattern». проверьте этот поток http://stackoverflow.com/questions/437620/java-synchronized-static-methods-lock-on-object-or-class – sanbhat