Junior — Middle
Gor yoki iplar o'rtasida ma'lumot almashish uchun kanallar qachon va qanday ishlatilishini misol bilan keltira olasizmi?
sobes.tech AI
AIdan javob
Go'da kanallar, goroutine'lar arasında güvenli veri alışverişi yapmak, onları senkronize etmek ve değerleri iletmek üçün istifadə olunur.
Bir kanalı, bir goroutine'den digərinə ədədlər göndərmək üçün istifadə nümunəsi:
package main
import (
"fmt"
"time"
)
func producer(ch chan int) {
for i := 0; i < 5; i++ {
ch <- i // kanala məlumat göndərilir
time.Sleep(time.Millisecond * 500)
}
close(ch) // bütün məlumatlar göndərildikdən sonra kanal bağlanır
}
func consumer(ch chan int) {
for val := range ch { // kanaldan məlumat alınır
fmt.Println("Alınmış:", val)
}
}
func main() {
ch := make(chan int)
go producer(ch)
consumer(ch)
}
Burada, producer ədədləri kanala göndərir və consumer onları oxuyur. Kanallar, mutex və ya digər sinxronizasiya mexanizmlərindən istifadə etmədən məlumatların təhlükəsiz ötürülməsini təmin edir.