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.