Process
- Python kursu
- Uzman
- Ders 25/47
- 5 dk
multiprocessing.Process ile süreç oluşturmayı öğrenirsin.
multiprocessing.Process nedir?
multiprocessing.Process yeni bir işletim sistemi süreci başlatır. Her süreç kendi bellek alanına sahiptir; bu nedenle GIL (Global Interpreter Lock) sorunundan etkilenmez.
Bir Process oluştururken target argümanıyla bir fonksiyon verirsin. p.start() süreci başlatır, p.join() tamamlanmasını bekler. Süreçler arasında veri paylaşmak için Queue veya Manager kullanılır. Bu, CPU yoğun işleri paralelleştirmenin temel yoludur.
Süreç yaşam döngüsü
Bir Process'in yaşam döngüsü üç adımdan oluşur: oluştur, başlat, bekle. Process(target=func) ile oluşturur, .start() ile başlatır, .join() ile tamamlanmasını beklersin.
.start() çağrılmadan süreç çalışmaz. .join() çağrılmazsa ana program sürecin bitmesini beklemeden devam eder; bu, erken çıkışlara yol açabilir. Bu nedenle start'tan sonra her zaman join çağırmak iyi bir alışkanlıktır. Süreçler arası iletişim için Queue kullanılır.
Uygulama Process ile greet çağır
from multiprocessing import Process ile içe aktar. greet fonksiyonu tanımla; print("merhaba") yapsın. Process(target=greet) ile süreç oluştur, .start() ve .join() ile çalıştır.
Başlangıç kodu
# greet fonksiyonu yaz
# süreç oluştur ve çalıştırÖrnek çözüm
from multiprocessing import Process
def greet():
print("merhaba")
p = Process(target=greet)
p.start()
p.join()Beklenen çıktı
merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Process target parametresi ne alır?
from multiprocessing import Process
p = Process(target=func)- Bellek adresini
- Süreç kimliğini
- Çalıştırılacak fonksiyonu Doğru cevap
- Bir dosya adını
Açıklama: target, sürecin çalıştıracağı fonksiyonu alır.
2 Process kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Process |
Yeni süreç |
target |
Fonksiyon |
start |
Başlatır |
join |
Bekler |
3 Process tanımını tamamla
p = ____(target=greet)
p = Process(target=greet)
Açıklama: Process(target=func) yeni bir süreç oluşturur.