Sobes.tech
Junior — Middle

Go'da goroutine'ler arasında bilgi alışverişi nasıl gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, goroutine’ler arasındaki bilgi alışverişi öncelikle kanallar (channels) aracılığıyla gerçekleştirilir. Kanallar, goroutine’ler arasında güvenli veri iletimi sağlar, senkronizasyonu temin eder ve yarış durumlarını önler.

Bir kanal kullanım örneği:

ch := make(chan int)

// Bir goroutine içinde veri gönderimi
go func() {
    ch <- 42
}()

// Ana goroutine’de veri alma
value := <-ch
fmt.Println(value) // 42 yazdırır

Kanallar, tamponlu veya tamponsuz olabilir, bu da veri gönderme ve alma sırasında bloklama davranışını etkiler. Ayrıca, paylaşılmış değişkenler ve mutexler gibi diğer mekanizmalar da kullanılabilir, ancak kanallar Go’da iletişimin temel idiomatik yoludur.