Sobes.tech
Middle+

Kim kanali yopishi kerak?

sobes.tech AI

AIdan javob

Kanalni yaratuvchi uni yopishi va unga ma'lumot yubormasligini ta'minlashi kerak. Bu, yopilgan kanaga ma'lumot yuborishga urinishda panikadan qochish va qabul qiluvchilar ma'lumot oqimining oxirini to'g'ri aniqlashlari uchun muhimdir.

Asosiy qoidalar:

  • Yuboruvchi, endi qiymat yubormasligini bilsa, kanali yopadi.
  • Qabul qiluvchilar kanali yopmasligi kerak.
  • Kanalni yopish, qabul qiluvchilarga yangi ma'lumotlar bo'lmasligini signal qiladi.

Misol:

func ishlab chiqaruvchi(ch chan<- int) {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // Barcha ma'lumotlar yuborilgandan so'ng kanalni yopamiz
}

func iste'molchi(ch <-chan int) {
    for val := range ch {
        fmt.Println(val)
    }
    // Kanal yopilganida, sikl tugaydi
}

func main() {
    ch := make(chan int)
    go ishlab chiqaruvchi(ch)
    iste'molchi(ch)
}