Как устроены каналы внутри Go runtime?

Senior
113 просмотров
AFK Offer AI

Канал — это структура hchan: кольцевой буфер (для буферизованных), два списка ожидающих горутин (sendq, recvq), мьютекс и флаг closed. При отправке: если есть ожидающий получатель — копируем данные напрямую в его стек (без буфера). Если буфер не полон — кладём в буфер. Иначе — горутина паркуется в sendq.

Следующий вопрос

Что такое deep health check?