Sobes.tech
Back to questions
Junior
821

Что такое дедлоки?

Answer from AI

sobes.tech AI

Дедлок (взаимная блокировка) — ситуация в многопоточных или конкурентных системах, когда два или более процесса (или потока) навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых другим процессом. В результате ни один из них не может продолжить работу.

Пример: поток A захватил ресурс 1 и ждёт ресурс 2, а поток B захватил ресурс 2 и ждёт ресурс 1. Ни один из потоков не освободит ресурс, и программа «зависнет».

Чтобы избежать дедлоков, применяют стратегии:

  • Захват ресурсов в одном и том же порядке
  • Использование таймаутов при ожидании блокировок
  • Избегание вложенных блокировок
  • Анализ и проектирование системы с учётом возможных блокировок

В Go дедлоки могут возникать при неправильном использовании каналов и мьютексов.