スレッドをデーモンに設定することの意味について少し混乱しています。
ドキュメントには次のように書かれています。
スレッドは「デーモンスレッド」としてフラグを立てることができます。このフラグの意味は、デーモン スレッドだけが残ったときに Python プログラム全体が終了することです。初期値は作成スレッドから継承されます。フラグはデーモン プロパティを介して設定できます。
これが通常のスレッドと何が違うのかわかりません。
これは、このプログラムが決して終わらないということですか?
def threadfunc():
while True:
time.sleep(1)
threading.Thread(target=threadfunc).start()
メインスレッドが実行を終了しても。すぐに終了しますが?
def threadfunc():
while True:
time.sleep(1)
th = threading.Thread(target=threadfunc)
th.daemon = True
th.start()
メインスレッドで sys.exit() を呼び出している状況があり、ログを見るとプロセスがハングし、他のスレッドが実行されているため、質問します。
これは、スレッドが生きている状態で呼び出される sys.exit() と関係がありますか?