CodeBlanks Logo Icon CodeBlanks

Process

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

main.py
# greet fonksiyonu yaz
# süreç oluştur ve çalıştır

Örnek çözüm

main.py
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?

main.py
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

Soru
p = ____(target=greet)
Cevap
p = Process(target=greet)

Açıklama: Process(target=func) yeni bir süreç oluşturur.

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