Title: Describe the purpose of synchronization.
Course: Java Programming (Oracle) (10055) > Section: Understanding Multithreaded Programming Support

Description of synchronization should include the following:

- Synchronization is a process of coordinating the activities of two or more threads.
- Java has a complete subsystem devoted to synchronization.
- Synchronization is most commonly needed when two or more threads need access to a shared resource that can be used by only one thread at a time.
- Synchronization is used when one thread is waiting for an event that is caused by another thread.
- All objects can be synchronized
- The key to synchronization is the concept of the monitor, which controls access to an object and implements the concept of a lock.