Что такое ожидание блокировки в Java?

628
29 августа 2017, 10:53

Добрый день. Изучаю сейчас потоки исполнения в Java.

На данном скриншоте изображенны состояния потока исполнения.

Мне остается не понятнм состояние "Ожидание блокировки"(Waiting for lock) и "Блокировка полученна"(Lock acquired). Может у меня что то не улаживается в голове. Как я понял поток может быть заблокированна например когда пытается получить доступ к методу который сейчас используется другим потоком, тоесть использует монитор. Можете обьяснить или привести пример каким образом поток ждет блокировки? Как так может быть что бы поток работал, потом стал ждать блокировки, а потом лишь получил саму блокировку? И почему нарисвоанна стрелочка от состояния BLOCKED к RUNNABLE с состоянием блокировка полученна?

READ ALSO
Почему static main()?

Почему static main()?

Почему метод main() должен быть статичным?

306
Разница между методом и функцией

Разница между методом и функцией

Есть ли разница между методом и функцией? Или это просто два разных названия одного и того же?

426
Как правильно работать с Google Tag Manager для Google Analitics?

Как правильно работать с Google Tag Manager для Google Analitics?

В общем нужно мне сделать реализацию Google Tag Manager я начал с этой статьи

283
Строка как массив символов

Строка как массив символов

Строка — это массив символовКак в java обратится к букве по индексу? Мой код:

483