Deadlock — все горутины заблокированы, программа не может продолжиться. Go рантайм детектит и выводит "fatal error: all goroutines are asleep - deadlock!" Частые причины: отправка в небуферизованный канал без получателя, чтение из канала без отправителя, циклическая зависимость mutex (A ждёт B, B ждёт A). Пример: ch := make(chan int); ch <- 1 — main горутина заблокирована. Фикс: буферизованный канал, или отправка в отдельной горутине. Для mutex — всегда захватывай в одном порядке.