A staple in Multithreading questions, be prepared to answer this one.   The synchronized keyword before a block means that any thread entering this block has to acquire the monitor (the object in brackets). If the monitor is already acquired by another thread, the former thread will enter the BLOCKED state and wait until the monitor is released.  synchronized(object) {
// ...
}");   A synchronized instance method has the same semantics, but the instance itself acts as a monitor.  synchronized void instanceMethod() {
// ...
}");   For a static synchronized method, the monitor is the Class object representing the declaring class.  static synchronized void staticMethod() {
// ...
}");