CodeBlanks Logo Icon CodeBlanks

Queue

multiprocessing.Queue ile süreçler arası kuyruğu öğrenirsin.

multiprocessing.Queue nedir?

multiprocessing.Queue, süreçler arasında veri aktarmak için iş parçacığı güvenli bir FIFO kuyruğudur. .put() ile veri koyar, .get() ile alırsın.

Birden çok süreç aynı kuyruğa yazabilir ve okuyabilir; kuyruk iç kilitleme sıraları garanti eder. Bu, sürecin sonucunu ana programa iletmek için en yaygın yoldur. Örneğin bir işçi süreci q.put(sonuc) yapar, ana program q.get() ile sonucu alır. Kuyruk boşsa get veri gelene kadar bekler.

Queue ile veri aktarma

Bir Queue'yu hem ana program hem de işçi süreç kullanabilir. İşçi q.put(sonuc) ile sonuç koyar, ana program q.get() ile alır.

Önemli nokta: Queue bir argüman olarak sürece verilir. Process(target=worker, args=(q,)) yazarak kuyruğu geçirirsin. İşçi bu kuyruğa yazar, ana program okur. Kuyruk FIFO olduğu için ilk konan ilk alınır. Birden çok işçi aynı kuyruğa yazıyorsa sıra, yazma hızına bağlıdır; ama her öğe yalnızca bir kez alınır.

Uygulama Queue ile değer aktar

from multiprocessing import Queue ile içe aktar. q = Queue() ile kuyruk oluştur. q.put("bir") ve q.put("iki") ile iki değer koy. q.get() ile sırayla iki değeri al ve yazdır.

Başlangıç kodu

main.py
# kuyruk oluştur
# iki değer koy ve sırayla al
# yazdır

Örnek çözüm

main.py
from multiprocessing import Queue

q = Queue()
q.put("bir")
q.put("iki")
print(q.get())
print(q.get())

Beklenen çıktı

bir
iki

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Queue çağrısını tamamla

Soru
from multiprocessing import ____
q = Queue()
Cevap
from multiprocessing import Queue
q = Queue()

Açıklama: Queue süreçler arası kuyruktur.

2 q.get() ne yapar?

main.py
q = Queue()
q.put(42)
val = q.get()
  • Kuyruğa değer koyar
  • Kuyruktan bir değer alır Doğru cevap
  • Kuyruğu siler
  • Kuyruk boyutunu verir

Açıklama: get() kuyruğun başından bir değer alır.

3 Queue kavramlarını eşleştir

Kavram Anlamı
put Değer koyar
get Değer alır
Queue FIFO kuyruk
args=(q,) Kuyruğu geçirir

Uzman bölümündeki tüm dersler