Skip to content
Opensource internals
  • Posts

Channels

Go Channels Are a Ring Buffer, a Lock and a Wait Queue

Oct 21, 2026 22 min read Jay Hubbert

A Go channel is a ring buffer, one mutex and two wait queues: sends and receives memmove an element, park the goroutine on a sudog, and hand off with goready.

GoInternalsConcurrencyChannels

Read more →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·