From Lecture: Synchronization
Monitor
idea: object state guarded by its mutex
monitor is just a class, whose all public methods “synchronize,” which means you can’t access state without holding mutex
Principal: let short methods hold the mutex in case it doesn’t affect performance