Зависание происходит, если программа перестает отвечать на входные данные.

Зависание происходит, если программа перестает отвечать на входные данные. Приложение может зависнуть, когда оно ждет ресурса, особенно блокировки или события, в течение очень долгого времени.

Общие причины:

  • Блокировки, которые освобождаются только после некоторого взаимодействия с пользователем, например, пользователь мог забыть совершить транзакцию базы данных, в результате чего другие транзакции ожидают эту блокировку.
  • Тупики
  • Голодание: когда многие процессы пытаются завладеть ресурсом, некоторые процессы могут вообще его не получить или только в течение столь коротких и редких интервалов, что вряд ли достигнут какой-либо прогресс.
  • Потерянные события: когда процесс ожидает событие, но это событие никогда не происходит, процесс ожидания может никогда не продолжиться.

Важным для решения проблем с зависшими приложениями является идентификация и визуализация вовлеченных процессов и ресурсов / блокировок / событий. Как это сделать, зависит от задействованных технологий.