Last Updated: May 22, 2026
An unbuffered channel is a channel with zero capacity. Every send on it pauses until another goroutine performs a matching receive, and every receive pauses until another goroutine performs a matching send. That forced meeting in the middle, called a rendezvous, is what makes unbuffered channels the default tool for synchronization in Go.