What is the synchronization cost of calling a synchronized method from a synchronized method?
Is there any difference in performance between this synchronized void x() { y(); } synchronized void y() { } and this synchronized void x() { y(); } void y() { } chrylis Yes, there is an additional performance cost, unless and until the JVM inlines the call to y() , which a modern JIT compiler will do in fairly short order. First, consider the case you've presented in which y() is visible outside the class. In this case, the JVM must check on entering y() to ensure that it can enter the monitor on the object; this check will always succeed when the call is coming from x() , but it can't be