Python のデーモンスレッドを設定する方法
Pythonでは、スレッドのデーモン属性を設定することでデーモンスレッドにできます。デーモンスレッドにした場合、そのスレッドのライフサイクルはメインスレッドや他の非デーモンスレッドの終了時間に依存します。非デーモンスレッドがすべて終了すると、デーモンスレッドが完了しているかどうかに関係なく、Pythonインタプリタは終了します。
デーモンスレッドを設定する方法は簡単で、daemon属性をTrueに設定するだけです。
import threading
import time
def worker():
print("Worker thread started")
time.sleep(5)
print("Worker thread completed")
# 创建线程并设置为守护线程
thread = threading.Thread(target=worker)
thread.daemon = True
# 启动线程
thread.start()
# 主线程继续执行
print("Main thread continues")
time.sleep(10)
上記の例では、worker関数は5秒間の処理時間のかかるタスクです。スレッドのデーモン属性をTrueに設定すれば、タスクが完了しなくても、メインスレッドが終了するとスレッドも終了します。
スタートメソッドを呼び出す前にデーモンスレッドの属性を設定する必要があります。そうでないと、RuntimeError例外が発生します。なお、デーモンスレッドはジョインメソッドを使用してスレッドの終了を待機することができません。デーモンスレッドはメインスレッドが終了すると自動的に終了します。