Mutual Exclusion Synchronization
A mutex semaphore (lock) is associated with each object, including classes.
Any method or code block can be declared to be synchronized.
A synchronized method/block must first obtain the lock for the associated object.