Sobes.tech
Junior — Middle

Go programlama dilinde yarışma kavramını ve bunun paralel uygulamaların geliştirilmesindeki rolünü açıklayın

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, yarışma (concurrency), bir programın işlemci kaynaklarını etkin bir şekilde kullanarak aynı anda birden fazla görevi yerine getirebilme yeteneğidir. Go dilinde bu, go anahtar kelimesiyle başlatılan hafif iş parçacıkları olan goroutine'ler aracılığıyla sağlanır.

Yarışma, kodun farklı bölümlerinin aynı anda çalıştığı paralel uygulamalar yazmaya olanak tanır, bu da programların performansını ve yanıt verme kabiliyetini artırır.

Goroutine'ler arasında senkronizasyon ve veri alışverişi için kanallar (channels) kullanılır; bu, açıkça kilit kullanmadan güvenli iletişim sağlar.

Örnek:

package main
import (
    "fmt"
    "time"
)

func worker(id int) {
    fmt.Printf("İşçi %d başlıyor\n", id)
    time.Sleep(time.Second)
    fmt.Printf("İşçi %d tamamlandı\n", id)
}

func main() {
    for i := 1; i <= 3; i++ {
        go worker(i) // goroutine başlat
    }
    time.Sleep(2 * time.Second) // goroutine'lerin tamamlanmasını bekle
}

Bu örnekte, üç goroutine aynı anda çalışmakta olup, Go dilinde yarışmayı göstermektedir.