Junior — Middle
Go'da goroutine'lar o'rtasidagi o'zaro ta'sir qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Go tilida, goroutine'lar o'rtasidagi o'zaro ta'sir kanallar (channels) yordamida amalga oshiriladi. Kanallar goroutine'lar o'rtasida ma'lumotlarni xavfsiz uzatish va ularni sinxronlashtirish imkonini beradi.
Asosiy nuqtalar:
- Kanal
make(chan Tur)yordamida yaratiladi. - Kanalga yuborish:
ch <- qiymat. - Kanaldan olish:
qiymat := <-ch. - Kanallar bufferli yoki buffersiz bo'lishi mumkin.
Misol:
func main() {
ch := make(chan string)
go func() {
ch <- "salom goroutine dan"
}()
msg := <-ch
fmt.Println(msg)
}
Shu tarzda, kanallar parallel goroutine'lar o'rtasida xavfsiz va qulay o'zaro ta'sirni ta'minlaydi, mutexlar yoki boshqa blokirovka mexanizmlari ishlatishga ehtiyoj qolmaydi.