Synchronized-методы. Захват монитора

Synchronized-методы. Захват монитора

Экземплярные synchronized-методы захватывают монитор объекта, из которого они были вызваны.


synchronized void doSome() {
       /* do some */
}
или


void doSome() {
    synchronized(this) {
       /* do some */
    }
}
Статические synchronized-методы захватывают монитор объекта Class класса, из которого они были вызваны.


static void doSome() {
    synchronized(MyClass.Class) {
       /* do some */
    }
}
Многопоточность