Worker Pools
Go dilinde, worker pool
lar, belirli bir işlemi yapmak üzere ayrılmış bir işçi grubudur. İşler bir channel
'a gönderilir ve bu işçiler tarafından işlenir. Bu sayede, işlemler belirli bir sıra ile işçilere dağıtılarak, iş yükü paylaştırılmış olur.
Bu örnekte, worker
adlı bir fonksiyon oluşturulur. Bu fonksiyon, işçiler tarafından gerçekleştirilecek işlemleri alır ve işlemlerin sonuçlarını results
channel
'ına yazar.
jobs
adlı bir channel
oluşturulur ve 100 adet iş yüküne kadar bu channel
'a mesaj gönderilebilir. results
adlı bir channel
oluşturulur ve 100 adet sonuç için bu channel
'a mesaj gönderilebilir.
for
döngüsü kullanılarak, işçiler için bir goroutine
oluşturulur. İşçiler, worker
fonksiyonuna gönderilen id
, jobs
ve results
değişkenlerini kullanarak çalışır.
Bir sonraki for
döngüsü kullanılarak, 5 adet iş yükü oluşturulur ve jobs
channel
'ına gönderilir. close
fonksiyonu kullanılarak, jobs
channel
'ı kapatılır.
Son olarak, for
döngüsü kullanılarak, sonuçlar results
channel
'ından alınır.
Çıktı:
Last updated