Sobes.tech
Junior — Middle

Hangi paralel görev uygulama türlerini biliyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da paralel görevler birkaç farklı şekilde gerçekleştirilebilir:

  • Goroutinesgo anahtar kelimesiyle başlatılan hafif iş parçacıklarıdır. Fonksiyonların paralel olarak çalışmasını sağlarlar.

  • Kanallar — goroutine'ler arasında iletişim ve senkronizasyon için kullanılır, verilerin güvenli bir şekilde iletilmesini sağlar.

  • Worker havuzları — görevleri bir kuyruğa alan ve işleyen goroutine'ler grubu, aynı anda çalışan goroutine sayısını kontrol etmeye yardımcı olur.

  • sync.WaitGroup — bir grup goroutine'in tamamlanmasını beklemek için kullanılır.

Goroutine başlatma ve kanal aracılığıyla veri iletme örneği:

ch := make(chan int)
// Goroutine başlat
go func() {
    ch <- 42 // değeri kanala gönder
}()
// Kanaldan değer al
val := <-ch
fmt.Println(val)