Дедлок (тупик) — это ситуация, когда две или более горутины блокируются, ожидая друг друга, и ни одна из них не может продолжить выполнение. Чаще всего возникает при работе с мьютексами или каналами.
Примеры дедлока:
Блокировка мьютексов в разном порядке:
go
Goroutine1 захватила mu1
и ждет mu2
. Goroutine2 захватила mu2
и ждет mu1
. Обе горутины заблокированы.
Отправка в небуферизованный канал без получателя:
go
Дедлок (тупик) — это ситуация, когда две или более горутины блокируются, ожидая друг друга, и ни одна из них не может продолжить выполнение. Чаще всего возникает при работе с мьютексами или каналами.
Примеры дедлока:
Блокировка мьютексов в разном порядке:
go
Goroutine1 захватила mu1
и ждет mu2
. Goroutine2 захватила mu2
и ждет mu1
. Обе горутины заблокированы.
Отправка в небуферизованный канал без получателя:
go
Register or sign in to get access to full answers for all questions from the question bank.