Junior — Middle
Go dilində məlumat göndərən və alan arasında mesaj mübadiləsi necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, göndərən və məlumatların qəbul edən arasında mesaj mübadiləsi kanallar (channels) vasitəsilə həyata keçirilir. Kanallar goroutinlərin (goroutines) təhlükəsiz məlumat mübadiləsinə və icra proseslərinin sinxronlaşdırılmasına imkan verir.
Kanal make funksiyası ilə yaradılır və bufferli və ya buffersiz ola bilər:
ch := make(chan int) // buffersiz kanal
chBuf := make(chan int, 5) // bufferli kanal, ölçüsü 5
Kanalda göndərmə:
ch <- 42 // 42 dəyərini kanala göndər
Kanaldan alma:
value := <-ch // kanaldan dəyəri al
İki goroutin arasında mesaj mübadiləsinin nümunəsi:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Goroutinadan salam"
}()
msg := <-ch
fmt.Println(msg)
}
Beləliklə, Go dilində kanallar paralel icra axınları arasında təhlükəsiz və rahat kommunikasiya təmin edir.