threading.Thread
- Python kursu
- Uzman
- Ders 31/47
- 5 dk
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
# greet fonksiyonu yaz
# parçacık oluştur ve çalıştırÖrnek çözüm
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?
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
t = ____(target=greet)
t = Thread(target=greet)
Açıklama: Thread(target=func) yeni bir parçacık oluşturur.