Go

Eşzamanlılık Desenleri

Worker pool, pipeline, fan-out/fan-in, iptal, context, errgroup, semafor

24 mülakat soruları·
Mid-Level
1

Go'da worker pool nedir?

Cevap

Worker pool, paylaşılan bir channel'dan gelen task'ları işlemek için sabit sayıda goroutine (worker) kullanan bir eşzamanlılık desenidir. Bu desen, aktif goroutine sayısını sınırlamayı ve sistem kaynak tüketimini kontrol etmeyi sağlar. Her task için bir goroutine oluşturmanın aksine, worker pool büyük hacimli task'ları verimli şekilde işlemek için bir worker kümesini yeniden kullanır.

2

Her task için bir goroutine oluşturmak yerine worker pool kullanmanın temel avantajı nedir?

Cevap

Aktif goroutine sayısını sınırlamak, sistem kaynak tüketimini (bellek ve CPU) kontrol etmeyi ve aşırı yüklenmeyi önlemeyi sağlar. Her task için bir goroutine oluşturmak, binlerce veya milyonlarca eşzamanlı goroutine'e yol açarak scheduler'ı doyurabilir ve belleği tüketebilir. Worker pool, task'ları sırayla işleyen optimal sayıda worker'ı koruyarak yüksek yük altında bile öngörülebilir performans sağlar.

3

Go'da eşzamanlılık bağlamında pipeline nedir?

Cevap

Pipeline, channel'larla birbirine bağlı bir dizi aşamadır; her aşama aynı fonksiyonu çalıştıran bir goroutine grubudur. Her aşama girdi channel'larından veri alır, işlem yapar ve ardından sonuçları çıktı channel'larından gönderir. Bu desen, karmaşık işlemleri basit ve yeniden kullanılabilir aşamalara ayırmayı sağlayarak her bileşenin bağımsız olarak birleştirilmesini ve test edilmesini kolaylaştırır.

4

İşlemenin sonunu bildirmek için bir worker pool'da channel nasıl doğru şekilde kapatılır?

5

Fan-out ve fan-in arasındaki fark nedir?

+21 mülakat soruları

Bir sonraki mülakatın için Go'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla