Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
В Golang дедлок чаще всего возникает при работе с мьютексами и каналами.
Возможные случаи:
Циклическая зависимость мьютексов: Две или более горутины пытаются получить блокировку на мьютексы в разном порядке, создавая взаимоблокировку.
go
go
Блокирующая отправка в небуферизованный канал, который никто не читает: Горутина отправляет данные в канал, но нет другой горутины, готовой их принять.
go
Блокирующее чтение из канала, в который никто не пишет: Горутина пытается прочитать данные из канала, но никто не отправляет в него данные.
go
Использование одного и того же мьютекса в рекурсивной функции без RWMutex
:
go
**Отправка в закрытый канал или чтение из зак
В Golang дедлок чаще всего возникает при работе с мьютексами и каналами.
Возможные случаи:
Циклическая зависимость мьютексов: Две или более горутины пытаются получить блокировку на мьютексы в разном порядке, создавая взаимоблокировку.
go
go
Блокирующая отправка в небуферизованный канал, который никто не читает: Горутина отправляет данные в канал, но нет другой горутины, готовой их принять.
go
Блокирующее чтение из канала, в который никто не пишет: Горутина пытается прочитать данные из канала, но никто не отправляет в него данные.
go
Использование одного и того же мьютекса в рекурсивной функции без RWMutex
:
go
**Отправка в закрытый канал или чтение из зак
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.