Sobes.tech
Junior — Middle

Go'da goroutine'ler arasındaki etkileşim nasıl sağlanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, goroutine'ler arasındaki etkileşim kanallar (channels) aracılığıyla gerçekleştirilir. Kanallar, goroutine'ler arasında güvenli veri iletimine ve senkronizasyonuna olanak tanır.

Ana noktalar:

  • Kanal make(chan Tür) kullanılarak oluşturulur.
  • Kanala gönderim: ch <- değer.
  • Kanaldan alma: değer := <-ch.
  • Kanallar buffered veya buffer olmayan olabilir.

Örnek:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "merhaba goroutine'den"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Bu şekilde, kanallar paralel goroutine'ler arasında güvenli ve kullanışlı bir etkileşim sağlar, mutex veya diğer kilitleme mekanizmalarını kullanmaya gerek kalmaz.