Junior — Middle
How does the synchronized mechanism work when used with a static function in the context of a monitor?
sobes.tech AI
Answer from AI
When a method is declared as synchronized static in Java, the monitor (lock) is taken at the class level, not at the instance level. This means that when such a method is called, the thread locks the class monitor (Class object), and no other threads can simultaneously execute other static synchronized methods of the same class.
Example:
public class Example {
public static synchronized void staticSyncMethod() {
// locks the monitor of the class Example.class
// critical section
}
}
Thus, synchronized on a static method provides mutual exclusion at the class level, not on a specific object. This is useful when you need to synchronize access to static resources or class variables.