2012-04-08 3 views
1

threading.Thread()のサブクラスを作成するときに.join()メソッドをオーバーライドしました。私はテストスクリプトでクラスをテストするとうまくいきますが、私のプログラムでそれを使用すると、thread.join)メソッドが繰り返し呼び出されていますが、私はそれをやっていません。このメソッドを呼び出すのは何ですか?私が知る限り、例外はスローされていません。呼び出し関数を調べると_exitfuncと思われますが、これに関する情報は見つかりません。thread.join()が呼び出されていて、私のものではない

私のコードは、投稿するlongにあるが、呼び出し元の関数がjoinメソッドはプログラム終了時に呼び出されることを意味_exitfuncある場合here

答えて

1

見つけることができます。これは、Pythonスレッドフレームワークが、プログラム終了の一部として実行されているすべての非デーモンスレッドでjoinを呼び出すためです。

_exitfuncの最良の説明が別のスタックオーバーフローの質問です:あなたがスレッドデーモン作り、join()は、プログラムの終了時に呼び出されるしたくない場合はWhat is a python thread

0

t.daemon = True 

非デーモンスレッドはすべてが終了するまでプロセスを実行し続けます。

関連する問題