Йоу, если всё другое не сработает, можно жёстко убить поток, но это очи рискованно:
Программный код:
import threading
import ctypes
def thread_task():
while True:
print('Работаю...')
time.sleep(1)
def stop_thread(thread):
if not thread.is_alive():
return
tid = ctypes.c_long(thread.ident)
res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(SystemExit))
if res == 0:
raise ValueError('Thread ID не найден')
elif res > 1:
ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
raise SystemError('PyThreadState_SetAsyncExc фэйл)')
thread = threading.Thread(target=thread_task)
thread.start()
time.sleep(5)
stop_thread(thread)\
Но лучше юзать флаги, меньше возни потом будет.