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