Sobes.tech
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.