Warum ein ReentrantLock verwenden, wenn man synchronisiert (dies) verwenden kann?

Ich versuche zu verstehen, was die Sperre in der Parallelität so wichtig macht, wenn man sie verwenden kann synchronized (this). Im folgenden Dummy-Code kann ich Folgendes tun: synchronisierte die gesamte Methode oder synchronisierte den gefährdeten Bereich ( synchronized(this){...}) ODER sperren...