2009-09-11 3 views

答えて

19

デーモンスレッドは、アプリケーションの終了を妨げません。デーモンではないスレッド(メインスレッドを含む)がすべて完了すると、プログラムは終了します。

バックグラウンドで何かをしている場合は、スレッドをデーモンとして設定して、アプリケーションが終了する前に明示的にそのスレッドの関数を返す必要はありません。

たとえば、GUIアプリケーションを作成しているときに、ユーザーがメインウィンドウを閉じると、プログラムは終了する必要があります。しかし、デーモン以外のスレッドがぶら下がっている場合、それは実行されません。ドキュメントから

http://docs.python.org/library/threading.html#threading.Thread.daemon

その初期値は 作成スレッドから継承されます。メインスレッド はデーモンスレッドではないため、 メインスレッドで作成されたすべてのスレッド デーモンはデフォルトでFalseに設定されています。

の非デーモンスレッドが残っていないと、Pythonプログラム全体が終了します。

+1

今私はデーモンスレッドについての明確な考え方を持っています。ありがとう! –

+1

アプリケーションを終了すると、デーモンスレッドはどうなりますか? –

+1

@Matteoプログラムが終了すると、デーモンスレッドは強制終了されます。 –

関連する問題