Skip to content

Thread blocking state

The Thread blocking state is a specific thread lifecycle state that a thread enters when it is waiting for a monitor lock to enter a synchronized block or method^[600-developer__JUC.md]. This state occurs specifically because the thread is actively waiting to acquire an intrinsic lock held by another thread^[600-developer__JUC.md].

Unlike a thread in the waiting state (which waits indefinitely for another thread to perform a specific action), a thread in the blocking state is typically waiting for a resource—the monitor lock—to become available^[600-developer__JUC.md]. The thread will remain in this blocked state until it can successfully re-enter the synchronized block or method^[600-developer__JUC.md].

Transition to Blocked

A thread transitions to the BLOCKED state when it attempts to enter a synchronized block or method but encounters contention because another thread currently holds the lock^[600-developer__JUC.md]. Once the lock is acquired and the thread is scheduled to run again, it will return to the RUNNABLE state^[600-developer__JUC.md].

  • [[JUC]]
  • [[Thread state]]
  • [[Monitor lock]]

Sources

  • 600-developer__JUC.md