Pythonでスレッドを終了させるにはどうすればいいですか?
Pythonでは、スレッドオブジェクトのデーモン属性をTrueに設定することでスレッドを終了できます。主スレッドが終了すると、すべてのデーモンスレッドも一緒に終了します。
もう1つの方法はthreadingモジュールによって提供されるThreadクラスのjoin()メソッドを使用することです。join()メソッドは指定されたスレッドが終了するまでメインスレッドをブロックします。join()メソッドを呼び出すことでスレッドの実行が完了するまで待ってから、その後にメインスレッドの他の部分を続行できます。
以下に、この 2 つの手法を使用してスレッドを終了するためのサンプルコードを示します。
スレッドオブジェクトのデーモン属性を設定
import threading
import time
def my_thread():
while True:
print("Running...")
time.sleep(1)
t = threading.Thread(target=my_thread)
t.daemon = True # 设置线程为守护线程
t.start()
# 主线程继续执行其他操作
time.sleep(5)
print("Main thread finished...")
方法2:join()メソッドを使う
import threading
import time
def my_thread():
while True:
print("Running...")
time.sleep(1)
t = threading.Thread(target=my_thread)
t.start()
# 主线程等待子线程执行完毕
t.join()
# 主线程继续执行其他操作
print("Main thread finished...")
いずれの方法でもスレッドを止めることができます。