Я пишу библиотеку python, которая будет использоваться в unix / windows. У меня проблема с завершением потока t1
. Я попытался установить для него поток daemon
, но поскольку библиотека иногда используется в IDE / приложениях, поток t1
не закроется, пока не закроется все приложение, что нежелательно. Теперь я пытаюсь изменить его на поток без демона и обработать завершение вручную.
def threadclick(id, stop):
while(True):
//do things repetitively //
if stop():
break
def main():
global stop_thread
stop_thread = False
port_string1 = port_string
t1 = threading.Thread(target=threadclick, args=(id, lambda : stop_thread))
t1.start()
Мне нужно закрыть его, вызвав эту функцию:
def close_thread():
global stop_thread
stop_thread = True
t1.join
конечно, это дает мне ошибку t1 is undefined, но я не уверен, как ее объявить глобально.