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

How to force main thread to close if a sub thread is alive in python?

本问题已经有最佳答案,请猛点这里访问。

如果一个子线程在python中是活动的,如何强制关闭主线程?

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


将子线程转换为守护进程线程。例如:

1
2
3
4
5
class SubThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.daemon = True # Makes the thread a daemon thread
        ...

1
2
subThread = threading.Thread(...)
subThread.daemon = True

当程序结束时,所有守护进程线程都将立即死亡。如果子线程不是守护进程线程,那么必须在程序结束之前停止它们。正如Serge在评论中提到的,"有没有办法在python中杀死线程?"讨论如何停止线程。


您可能希望将其设置为守护进程线程。有关守护进程线程的信息,请参阅守护进程线程解释。那么它不应该等待线程完成。