Merhaba, threading modülü ile bir thread başlattım ancak işim bittikten sonra durmasını istiyorum ve nasıl durduracağımı bulamadım. t._stop() denedim ama AssertionError veriyor (sadece AssertionError yazıyor hiçbir açıklama yok). Ne yapabilirim ?
1 Beğeni
target
fonksiyonu donunce thread otomatik durur ve yok olur, baska bir sey yapmana gerek yok.
1 Beğeni
Şöyle bir yol gördüm.
How to Kill a Python Thread - miguelgrinberg.com
python event oluştur, o da bir yerde threadleri sonlandırır.
import random
import signal
import threading
import time
exit_event = threading.Event()
def bg_thread():
for i in range(1, 30):
print(f'{i} of 30 iterations...')
time.sleep(random.random()) # do some work...
if exit_event.is_set():
break
print(f'{i} iterations completed before exiting.')
def signal_handler(signum, frame):
exit_event.set()
signal.signal(signal.SIGINT, signal_handler)
th = threading.Thread(target=bg_thread)
th.start()
th.join()
Yada execptionlar oluşturup thread sonladırılabilir.
Farklı bir kaç örnek de burada gördüm
How To Kill A Thread In Python? – Finxter
Umarım işine yarar.
1 Beğeni
Teşekkürler yanıtlarınız için.