Заблокированные потоки находятся в состоянии BLOCKED.
Когда поток пытается получить доступ к заблокированному ресурсу или ждет уведомления от другого потока с помощью метода wait(), он переходит в состояние блокировки (BLOCKED). При этом поток не выполняется и не использует процессорное время до тех пор, пока не будет разблокирован и получит доступ к ресурсу.
Заблокированный поток может ожидать доступа к монитору объекта или к другому ресурсу, который заблокирован другим потоком. Например, если один поток уже захватил монитор объекта с помощью ключевого слова synchronized и другой поток пытается получить доступ к тому же самому монитору, он будет блокирован до тех пор, пока первый поток не освободит монитор.
Заблокированный поток может перейти в состояние RUNNABLE, когда ресурс становится доступным для него. Например, если первый поток освободил монитор объекта, заблокированный поток может получить доступ к монитору и продолжить выполнение своей задачи.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov