Short answer - yes. But is it required?? it depends on
what you are trying to synchronize.
Synchronization is internally implemented using locks( aka monitors ). When you enter a synchronized block, the thread obtains the lock and retains it till the duration of the method call. So, if you try to double-synchronize, ie., call another synchronized method from originally synchronized method, it will have no effect since the thread already has a lock. This approach ( synch-method1 calling synch-method2 ) is not recommended because it could lead to potential deadlocks.
Synchronization can also be done on different objects instead of a method. If you use the <code>synchronized(Object)</code> format, then the thread obtains the lock on the object instead of 'this' instance. Within the synchronized code, the thread can again obtain a lock on another object.
Java imposes no limit on howmany objects a thread can obtain a lock on, but again, do this with caution!!
Lastly, since wording can be so confusing, I just want to make one point clear -
you don't synchronize a thread, you synchronize an object( ie., access to an object ). Hope that helps,
Ajith