Когда новый поток уничтожает объект Tkinter Tk, mainl oop которого находится в основном потоке, новый поток, кажется, застревает и никогда не продолжается или не завершается. Почему это происходит? Приведенный ниже код показывает пример того, что я имею в виду:
from tkinter import *
from threading import *
import time
win = Tk()
def exit_after_time():
time.sleep(2)
win.destroy()
thread = Thread(target=exit_after_time)
thread.start()
win.mainloop()
print("mainloop quit")
thread.join()
print("thread joined")
При запуске mainl oop завершается через 2 секунды, но поток никогда не присоединяется. Сейчас я просто работаю над этим, сделав нить демоном и не дожидаясь его окончания sh, но я бы хотел знать, что на самом деле происходит.