- Thread can acquire lock
- When another thread tries to acquire same lock, it blocks
- When first thread releases lock, other thread is
unblocked and tries again
- Two kinds of locks
- Objects of class implementing java.util.concurrent.Lock
interface type, usually ReentrantLock
- Locks that are built into every Java object