thread.join()被调用,而不是我

时间:2012-04-08 19:58:06

标签: python python-multithreading

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

我的代码很长,但可以找到here

2 个答案:

答案 0 :(得分:1)

如果调用函数是_exitfunc,则意味着在程序终止时调用join方法。这是可以预料到的,因为Python线程框架会在所有正在运行的非守护程序线程上调用join作为程序终止的一部分。

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

答案 1 :(得分:0)

如果您不希望在程序退出时调用join(),请将该线程作为守护程序:

t.daemon = True

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