start ve join
- Python kursu
- Uzman
- Ders 26/47
- 5 dk
start ve join ile süreç yönetimini öğrenirsin.
start ve join nedir?
.start() bir Process'i çalışmaya gönderir; .join() sürecin bitmesini bekler. İkisi birlikte sürecin yaşam döngüsünü yönetir.
start çağrıldıktan sonra süreç arka planda çalışır. Ana program hemen devam eder. join çağrıldığında ana program sürecin bitmesini bekler. Bu sıralama önemlidir: önce start, sonra join. join olmadan ana program süreci bitirmeden çıkabilir ve beklenmeyen davranışlar oluşabilir.
Birden çok süreç
Birden çok Process oluşturup hepsini start ile başlatır, sonra join ile beklersin. Bu, paralel çalışmanın temel desenidir.
Örneğin iki süreç başlatıp sırayla join yaparsan her ikesi de paralel çalışır ve ikisi de bitmeden ana program devam etmez. Çıktı sırası süreçlerin tamamlanma hızına bağlı olabilir; bu yüzden deterministik sonuç için Queue kullanılır. Ama yaşam döngüsü yönetimi her zaman aynıdır: önce tüm start çağrıları, sonra tüm join çağrıları.
Uygulama start ve join ile sıralı çıktı
from multiprocessing import Process ile içe aktar. worker fonksiyonu tanımla; print("bitti") yapsın. Process(target=worker) ile süreç oluştur. .start() ve .join() çağır. Sonra ana programda print("tamam") yaz.
Başlangıç kodu
# worker fonksiyonu yaz
# süreç oluştur, başlat ve bekle
# sonra ana program yazdırÖrnek çözüm
from multiprocessing import Process
def worker():
print("bitti")
p = Process(target=worker)
p.start()
p.join()
print("tamam")Beklenen çıktı
bitti tamam
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 start/join kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
start |
Süreci başlatır |
join |
Bitmesini bekler |
target |
Fonksiyon |
Process |
Süreç nesnesi |
2 join çağrısını tamamla
p.start()
p.____()
p.start()
p.join()
Açıklama: join() sürecin bitmesini bekler.
3 join olmadan ne olur?
from multiprocessing import Process
p = Process(target=func)
p.start()
# join yok
print('bitti')- Ana program süreci beklemeden devam eder Doğru cevap
- Süreç hiç başlamaz
- Süreç sonsuza kadar çalışır
- Bir hata fırlatır
Açıklama: ana program süreci beklemeden devam eder. join, beklemeyi sağlar.