العودة إلى الدورة

الـ Channels: التواصل بين الـ Goroutines

لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)

لا تشارك الذاكرة، بل شارك البيانات

الـ Channels هي الأنابيب التي تربط الـ Goroutines المتزامنة. ترسل القيم إلى القنوات من Goroutine وتستقبلها في أخرى.

go ch := make(chan string)

go func() { ch <- "message" // إرسال }()

msg := <-ch // استقبال (ينتظر حتى وصول الرسالة)

تمنع الـ Channels ظروف السباق (race conditions) بطبيعتها لأن ملكية البيانات تُنقل بين الروتينات.