Back to questions
Junior
820
Что такое дедлоки?
Answer from AI
sobes.tech AI
Дедлок (взаимная блокировка) — ситуация в многопоточных или конкурентных системах, когда два или более процесса (или потока) навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых другим процессом. В результате ни один из них не может продолжить работу.
Пример: поток A захватил ресурс 1 и ждёт ресурс 2, а поток B захватил ресурс 2 и ждёт ресурс 1. Ни один из потоков не освободит ресурс, и программа «зависнет».
Чтобы избежать дедлоков, применяют стратегии:
- Захват ресурсов в одном и том же порядке
- Использование таймаутов при ожидании блокировок
- Избегание вложенных блокировок
- Анализ и проектирование системы с учётом возможных блокировок
В Go дедлоки могут возникать при неправильном использовании каналов и мьютексов.