Middle+
Каналды ким жабу керек?
sobes.tech AI
AIден жооп
Каналды түзүүчү аны жабыш керек жана ага дагы маалымат жөнөтпөшү керек. Бул жабылган каналга маалымат жөнөтүүгө аракет кылганда паникадан сактануу жана кабыл алгандарга маалымат агымын туура аныктоо үчүн маанилүү.
Негизги эрежелер:
- Жөнөтүүчү, башкача айтканда, көбүрөөк маанилер жөнөтпөй турган болсо, каналды жабат.
- Алып жүрүүчүлөр каналды жаббоого тийиш.
- Каналды жабуу, ал кабыл алгандарга жаңы маалымат болбой турганын билдирет.
Мисал:
func өндүрүүчү(ch chan<- int) {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // Бардык маалыматтар жөнөтүлгөндөн кийин каналды жабабыз
}
func керектөөчү(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
// Канал жабылганда, цикл аяктайт
}
func main() {
ch := make(chan int)
go өндүрүүчү(ch)
керектөөчү(ch)
}