--is
a process of allowing only one thread to access a shared resource at any given
point of time.
--method
level, block level.
--once
a thread is inside a synchronized method, no other thread can call any other
synchronized method on the same object.