У синхронизированного статического метода нет доступа к this
, но есть доступ к объекту класса Class
, он присутствует в единственном экземпляре и именно он выступает в качестве монитора для синхронизации статических методов. Таким образом, следующая конструкция:
public class SomeClass { public static synchronized void someMethod() { //code } }
эквивалентна такой:
public class SomeClass { public static void someMethod(){ synchronized(SomeClass.class){ //code } } }