Точней вопрос по this - на чем именно идет синхронизация? Я правильно понимаю что this - это именно нить которая заняла этот блок именно сейчас? значение именно этого this! Зачем в synchronized (this) или (MyClass.class) как оно синхронизирует через него?
public class DemoClass{
    public void demoMethod(){
        synchronized (this)        {
            //other thread safe code
        }
    }
}