如果子线程在python中处于活动状态,如何强制主线程关闭?

时间:2014-06-06 20:07:14

标签: python multithreading

如果子线程在python中处于活动状态,如何强制主线程关闭?

sys.exit()exit()似乎等待子线程完成?

2 个答案:

答案 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处有关守护程序线程的信息。然后它不应该等待该线程完成。