1

在创建 threading.Thread() 的子类时,我已经覆盖了 .join() 方法。当我用测试脚本测试我的类时,它工作正常,但是在我的程序中使用它时,thread.join) 方法被一遍又一遍地调用,但不是我在做。什么叫这个方法?据我所知,没有异常被抛出。使用检查调用函数似乎是 _exitfunc 但我找不到任何关于此的信息。

我的代码很长,但可以在这里找到

4

2 回答 2

1

如果调用函数是_exitfunc,则意味着该join方法在程序终止时被调用。这是意料之中的,因为 Python 线程框架确实调用join所有正在运行的非守护线程作为程序终止的一部分。

最好的解释_exitfunc是另一个 Stack Overflow 问题:What is a python thread

于 2012-04-08T20:02:07.290 回答
0

如果您不想join()在程序退出时被调用,请将线程设置为守护进程:

t.daemon = True

非守护线程将保持进程运行,直到它们全部死亡。

于 2012-04-08T20:07:37.600 回答