Отличает BLOCKED на мониторе от WAITING на очереди или пуле
Зачем
Зачем это нужно
Восстанавливает цикл владельцев и порядок захвата конкретных locks
Предлагает единый порядок или уменьшение области синхронизации
Вопросы
Частые вопросы
Сколько thread dump нужно снять?
Для явного дедлока часто хватает одного, потому что цикл стабилен. Для зависания без цикла полезны три снимка с интервалом: видно, какие стеки не двигаются. Модель сравнит их и отделит медленную операцию от постоянной блокировки, не называя любой WAITING аварией.
Почему мониторинг не сообщает о дедлоке?
Не каждый ступор является циклом встроенных мониторов: потоки могут ждать future, внешний сервис или исчерпанный пул. Автоматический детектор видит только часть механизмов. Модель построит картину по состояниям и общим кадрам, а метрики пула и таймаутов помогут подтвердить альтернативную причину.
Можно ли исправить всё synchronized на одном объекте?
Это уберёт цикл, но превратит приложение в последовательное и может создать длинные задержки. Лучше установить порядок захвата, уменьшить число общих объектов или передавать неизменяемые данные. Модель предложит минимальную перестройку и отдельно отметит код, который нельзя выполнять под lock.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.