在创建 threading.Thread() 的子类时,我已经覆盖了 .join() 方法。当我用测试脚本测试我的类时,它工作正常,但是在我的程序中使用它时,thread.join) 方法被一遍又一遍地调用,但不是我在做。什么叫这个方法?据我所知,没有异常被抛出。使用检查调用函数似乎是 _exitfunc 但我找不到任何关于此的信息。
我的代码很长,但可以在这里找到
在创建 threading.Thread() 的子类时,我已经覆盖了 .join() 方法。当我用测试脚本测试我的类时,它工作正常,但是在我的程序中使用它时,thread.join) 方法被一遍又一遍地调用,但不是我在做。什么叫这个方法?据我所知,没有异常被抛出。使用检查调用函数似乎是 _exitfunc 但我找不到任何关于此的信息。
我的代码很长,但可以在这里找到
如果调用函数是_exitfunc
,则意味着该join
方法在程序终止时被调用。这是意料之中的,因为 Python 线程框架确实调用join
所有正在运行的非守护线程作为程序终止的一部分。
最好的解释_exitfunc
是另一个 Stack Overflow 问题:What is a python thread
如果您不想join()
在程序退出时被调用,请将线程设置为守护进程:
t.daemon = True
非守护线程将保持进程运行,直到它们全部死亡。