Thread'i durdurma

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.