Junior — Middle
Kunnen twee methoden, gedeclareerd met het sleutelwoord synchronized binnen dezelfde singleton-controller, gelijktijdig worden uitgevoerd?
sobes.tech AI
Antwoord van AI
Если два метода в одном синглтон-контроллере объявлены с ключевым словом synchronized, то они синхронизируются на одном и том же объекте — на экземпляре этого синглтона. Это значит, что в один момент времени только один из этих методов может выполняться, другие потоки будут ждать освобождения монитора.
Таким образом, два таких метода не могут запускаться одновременно, если они оба synchronized и принадлежат одному объекту.
Пример:
public class SingletonController {
private static final SingletonController instance = new SingletonController();
private SingletonController() {}
public static SingletonController getInstance() {
return instance;
}
public synchronized void methodA() {
// код
}
public synchronized void methodB() {
// код
}
}
В этом примере, если один поток выполняет methodA(), другой поток, вызвавший methodB(), будет заблокирован до завершения первого.