What is the `Thread.State.BLOCKED` state in Java?
The `BLOCKED` state indicates that a thread is waiting to acquire a lock on an object, but it cannot because another thread holds the lock.
Good! You are correct. The `BLOCKED` state indicates that a thread is waiting for a lock to be released.
Can you describe what happens when a thread enters the `WAITING` state and how it differs from the `BLOCKED` state?