Обычный шаблон для получения блокировки класса, независимой от экземпляра, такой, как это, - использование самого объекта Class:
public class Test {
public void doSomething() {
synchronized (Test.class) {
// something
}
}
}
что фактически делает синхронизированный статический метод. Конечно, если вы хотите использовать более одной блокировки, вам нужно объявить их как статические поля, как в вашем примере.