Junior — Middle
Go dilinde gönderen ve alıcı arasındaki mesaj alışverişi nasıl gerçekleştirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, gönderen ve alıcı arasındaki mesaj alışverişi kanallar (channels) aracılığıyla gerçekleştirilir. Kanallar, goroutine'lerin güvenli bir şekilde veri alışverişi yapmasını sağlar ve yürütmelerini senkronize eder.
Bir kanal, make fonksiyonu kullanılarak oluşturulur ve tamponlu veya tamponsuz olabilir:
ch := make(chan int) // tamponsuz kanal
chBuf := make(chan int, 5) // tamponlu kanal, tampon boyutu 5
Kanalda gönderme:
ch <- 42 // 42 değerini kanala gönder
Kanaldan alma:
value := <-ch // kanaldan değeri al
İki goroutine arasında mesaj alışverişine örnek:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Goroutine'den Merhaba"
}()
msg := <-ch
fmt.Println(msg)
}
Bu şekilde, Go'daki kanallar, paralel yürütme akışları arasında güvenli ve kullanışlı iletişim sağlar.