【发布时间】:2021-08-28 11:51:53
【问题描述】:
我为 Python 程序创建了一个 GUI,它可以启动 4 种不同的独立计算。我希望 GUI 在后台进行计算时做出响应,因此我为每个计算创建了一个新线程。我还保留了一些关于线程的附加信息(例如,它是否应该中止计算)。
每个计算也可以运行多次(在中止或更改某些设置后),这意味着可以为每个计算创建多个线程。
我不确定是否必须使用 .join() 显式加入每个线程,或者线程是否在函数完成执行后自动终止并加入。如果程序终止后没有自动加入主线程,我不想在程序结束时得到 100 个线程。
我知道我可以使用 thread.is_alive() 来检查线程是否已完成执行,但我真的不想编写某种线程垃圾收集器(它必须在自己的新线程中运行.. . 叹息)如果我不需要的话。我已经进行了一些谷歌搜索,但是当没有明确使用 .join() 时,我找不到有关线程生命周期的文档。
【问题讨论】:
标签: python multithreading user-interface