
Eşzamanlılık Desenleri
Worker pool, pipeline, fan-out/fan-in, iptal, context, errgroup, semafor
1Go'da worker pool nedir?
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.
2Her task için bir goroutine oluşturmak yerine worker pool kullanmanın temel avantajı nedir?
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.
3Go'da eşzamanlılık bağlamında pipeline nedir?
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.
İşlemenin sonunu bildirmek için bir worker pool'da channel nasıl doğru şekilde kapatılır?
Fan-out ve fan-in arasındaki fark nedir?
+21 mülakat soruları
Diğer Go mülakat konuları
Go Temelleri
Go Veri Yapıları
Go Arayüzleri
Hata Yönetimi
Goroutine Temelleri
Channels
Go Modules
HTTP Sunucusu
HTTP İstemcisi
JSON Kodlama
Database/SQL
context Paketi
Testing
Senkronizasyon İlkelleri
Go Web Framework'leri
REST API Tasarımı
gRPC
Reflection
Bellek Yönetimi
Performans Optimizasyonu
Generics
Go Design Patterns
Microservices
Güvenlik ve Kimlik Doğrulama
Docker & Containerization
Kubernetes Basics
İleri Düzey Go
CLI Geliştirme
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