2012-04-08 47 views
1

當創建threading.Thread()的子類時,我已經覆蓋了.join()方法。當我用一個測試腳本測試我的類時,它工作正常,但是在我的程序中使用它時,thread.join)方法一遍又一遍地被調用,但它並不是我所做的。什麼叫這個方法?據我所知,沒有任何例外。使用檢查調用函數似乎是_exitfunc,但我無法找到任何信息。thread.join()被調用,它不是我

我的代碼是長職位,但可以發現here

回答

1

如果調用函數是_exitfunc這意味着,join方法被調用的程序終止。這是可以預料的,因爲Python線程框架在所有運行的非後臺線程上調用join作爲程序終止的一部分。

_exitfunc最好的解釋是另外一個堆棧溢出問題:What is a python thread

0

如果你不想join()被稱爲當程序退出,使線程守護進程:

t.daemon = True 

非守護線程將繼續運行,直到它們全部死亡。

相關問題