لا تشارك الذاكرة، بل شارك البيانات
الـ Channels هي الأنابيب التي تربط الـ Goroutines المتزامنة. ترسل القيم إلى القنوات من Goroutine وتستقبلها في أخرى.
go ch := make(chan string)
go func() { ch <- "message" // إرسال }()
msg := <-ch // استقبال (ينتظر حتى وصول الرسالة)
تمنع الـ Channels ظروف السباق (race conditions) بطبيعتها لأن ملكية البيانات تُنقل بين الروتينات.