pythonスレッドをデーモンとして設定するとどのような違いがありますか
-
05-07-2019 - |
質問
thread.setDaemon(True)
を使用してPythonスレッドをデーモンとして設定すると、どのような違いがありますか?
解決
デーモンスレッドは、アプリケーションの終了を妨げません。プログラムは、すべての非デーモンスレッド(メインスレッドを含む)が完了すると終了します。
一般的に、バックグラウンドで何かをしている場合、スレッドをデーモンとして設定すると、アプリを終了する前にそのスレッドの関数を明示的に返す必要がなくなります。
たとえば、GUIアプリケーションを作成しているときにユーザーがメインウィンドウを閉じると、プログラムは終了します。しかし、デーモン以外のスレッドがぶらぶらしている場合は、そうではありません。
ドキュメントから: http://docs.python.org/ library / threading.html#threading.Thread.daemon
その初期値はから継承されます 作成スレッド。メインスレッド デーモンスレッドではないため、 メインスレッドで作成されたすべてのスレッド デフォルトはdaemon = Falseです。
Pythonプログラム全体は、次の場合に終了します デーモン以外の生きているスレッドは残っていません。
所属していません StackOverflow