Sobes.tech
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)
}