Middle+
Kanalı kim kapamalı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kanalı oluşturan kişi onu kapatmalı ve artık içine veri göndermemelidir. Bu, kapatılmış bir kanala veri gönderme girişiminde panik yaşamamak ve alıcıların veri akışının sonunu doğru şekilde belirleyebilmesi için önemlidir.
Ana kurallar:
- Gönderici, artık değer göndermeyecekse kanalı kapatır.
- Alıcılar kanalı kapatmamalıdır.
- Kanalın kapanması, alıcılara yeni veri olmayacağını sinyal eder.
Örnek:
func üretici(ch chan<- int) {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // Tüm veriler gönderildikten sonra kanalı kapatıyoruz
}
func tüketici(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
// Kanal kapatıldığında döngü sona erer
}
func main() {
ch := make(chan int)
go üretici(ch)
tüketici(ch)
}