import threading
def greet(name):
print(f"hello {name}")
t = threading.Thread(target=greet, args=("ada",))
t.start()
t.join()
print("done")Bu ne yazdırır?
- aTypeError fırlatır çünkü args bir dict olmalı, tuple değil
- bÖnce "done" sonra "hello ada" yazdırır, çünkü ana thread varsayılan olarak t'yi beklemez
- cÖnce "hello ada" sonra "done" — join() t bitene kadar bloklar✓
- dHiçbir şey yazdırmaz çünkü target= bir referans değil, bağlı bir fonksiyon çağrısı bekler
Açıklama:
threading.Thread(target=greet, args=("ada",)), start() çağrıldığında greet("ada")'nın yeni bir thread'de çalışmasını planlar. join(), t bitene kadar çağıran thread'i bloklar; bu yüzden "hello ada" her zaman "done"'dan önce yazdırılır. args, dict değil pozisyonel argümanlardan oluşan bir tuple/iterable alır.