Synchronized methods are methods that are used to control access to an object. A
thread only executes a synchronized method after it has acquired the lock for the
methodís object or class. Synchronized statements are similar to synchronized methods.
A synchronized statement can only be executed after a thread has acquired the lock
for the object or class referenced in the synchronized statement.