如果子线程在python中处于活动状态,如何强制主线程关闭?
sys.exit()
和exit()
似乎等待子线程完成?
答案 0 :(得分:2)
将子线程转换为守护程序线程。例如:
class SubThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.daemon = True # Makes the thread a daemon thread
...
或者
subThread = threading.Thread(...)
subThread.daemon = True
当你的程序结束时,所有守护程序线程将立即死亡。如果子线程不是守护程序线程,则在程序结束之前必须停止 。正如Serge在评论中提到的那样,“Is there any way to kill a Thread in Python?”讨论了阻止线程的方法。
答案 1 :(得分:1)
您可能希望将其设置为守护程序线程。请参阅Daemon Threads Explanation处有关守护程序线程的信息。然后它不应该等待该线程完成。