CodeBlanks Logo Icon CodeBlanks

threading.Thread

threading.Thread ile iş parçacığı oluşturmayı öğrenirsin.

threading.Thread nedir?

threading.Thread aynı süreç içinde hafif bir iş parçacığı başlatır. Süreçlerin aksine, iş parçacıkları belleği paylaşır; bu iletişimi kolay ama kilitlemeyi gerekli kılar.

Bir Thread oluştururken target ile bir fonksiyon verirsin. t.start() parçacığı başlatır, t.join() bitmesini bekler. Process'e çok benzer; ama aynı bellek alanını paylaştıkları için veri aktarımı Queue'ya gerek kalmadan doğrudan yapılabilir. Bu, I/O yoğun işler için uygundur.

Thread yaşam döngüsü

Bir Thread'in yaşam döngüsü Process'e benzer: oluştur, başlat, bekle. Thread(target=func) ile oluşturur, .start() ile başlatır, .join() ile beklersin.

İş parçacıkları aynı belleği paylaştığı için değişkenlere doğrudan erişebilir. Ama aynı kaynağa aynı anda yazmak veri yarışı (race condition) yaratır; bu yüzden Lock kullanılır. join olmadan ana parçacık bitmeden program çıkabilir; bu nedenle start'tan sonra join çağırmak iyi alışkanlıktır.

Uygulama Thread ile greet çağır

from threading import Thread ile içe aktar. greet fonksiyonu tanımla; print("merhaba") yapsın. Thread(target=greet) ile parçacık oluştur, .start() ve .join() ile çalıştır.

Başlangıç kodu

main.py
# greet fonksiyonu yaz
# parçacık oluştur ve çalıştır

Örnek çözüm

main.py
from threading import Thread

def greet():
    print("merhaba")

t = Thread(target=greet)
t.start()
t.join()

Beklenen çıktı

merhaba

Soru ve cevaplar

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

1 Thread kavramlarını eşleştir

Kavram Anlamı
Thread İş parçacığı
target Fonksiyon
start Başlatır
join Bekler

2 Thread target parametresi ne alır?

main.py
from threading import Thread
t = Thread(target=func)
  • Çalıştırılacak fonksiyonu Doğru cevap
  • Süreç kimliğini
  • Bellek adresini
  • Bir kuyruk

Açıklama: target, parçacığın çalıştıracağı fonksiyonu alır.

3 Thread tanımını tamamla

Soru
t = ____(target=greet)
Cevap
t = Thread(target=greet)

Açıklama: Thread(target=func) yeni bir parçacık oluşturur.

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