Сеня рядом и Белла пришел. Былое
Java 1007. Что является монитором при вызове нестатического и статического метода?
В Java каждый объект имеет свой монитор, который может быть использован для синхронизации доступа к объекту из разных потоков. При вызове нестатического метода монитором будет сам объект, для которого этот метод вызван, а при вызове статического метода монитором будет класс, в котором определен этот метод. Таким образом, при вызове нестатического метода монитором будет экземпляр класса, а при вызове статического метода - класс. Для синхронизации доступа к методу можно использовать ключевое слово synchronized в объявлении метода или блоке кода...
Java 1008. Что является монитором при выполнении участка кода метода?
В Java каждый объект имеет свой монитор, который может быть использован для синхронизации потоков при доступе к этому объекту. При выполнении участка кода метода монитором является объект, на котором вызывается метод с модификатором synchronized. Например, в следующем коде: public synchronized void doSomething() {
// код метода } монитором будет объект, на котором вызывается метод doSomething(), т.е. this. Также можно использовать блокировки для синхронизации: Object obj = new Object();
synchronized(obj) {
// блок синхронизации } В этом случае монитором будет объект obj...