синхронизация с этим фиктивным объектом

До сих пор я видел использование синхронизированного блока, но недавно я узнал, что использование фиктивного объекта предпочтительнее. Я нашел следующую тему, связанную с этим.

Java синхронизирует метод блокировки объекта или метода?

Таким образом, в приведенном ниже коде два разных объекта не могут запускать addA и addB одновременно, поскольку оба используют это для блокировки.

private int a;
private int b;

public synchronized void addA(){
    a++;
}

public synchronized void addB(){
    b++;
}

Я смущен, если я использую фиктивный объект для блокировки, что будет отличаться, если я использую строку ниже в обоих методах для синхронизации? Потому что все равно они будут иметь такой же замок.

synchronized(dummyObject){
    ...
}

Так что это значит, что у меня должно быть два разных фиктивных объекта для каждого метода, который будет использоваться с sycnhronized как?

 public void addA(){
    synchronized(dummyObj1){
       a++;
    }
}

public void addB(){
    synchronized(dummyObj2){
       b++;
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос