Pythonで特定のスレッドを終了する方法
スレッドを終了するには、スレッドのjoin()メソッドを使用できる。
まず、スレッドの実行継続を制御するフラグ変数を作成する必要があります。その後、スレッドのコード内で、ループを使用してフラグ変数の値をチェックし、フラグ変数が False だった場合はループを終了させて、スレッドの実行を終了します。
以下にサンプルコードを示します。
import threading
import time
# 创建一个标志变量,用于控制线程是否继续运行
running = True
# 定义线程函数
def thread_function():
global running
while running:
print("Thread is running...")
time.sleep(1)
print("Thread is stopped.")
# 创建线程对象
thread = threading.Thread(target=thread_function)
# 启动线程
thread.start()
# 等待一段时间
time.sleep(5)
# 设置标志变量为False,结束线程的运行
running = False
# 等待线程结束
thread.join()
print("Main thread is stopped.")
上のコードでは、スレッドオブジェクト thread が作成され、 thread.start() メソッドでスレッドが開始されます。その後、5 秒待った後に、フラグ変数 running が False に設定されスレッドの実行が終了し、 thread.join() メソッドでスレッドが終了するのを待ちます。
最後に「Main thread is stopped.」を出力して、メインスレッドも終了したことを表す。
スレッドが即座に終了しない場合があります。その場合、thread.join(timeout)メソッドを使用して指定した時間待機し、スレッドが指定した時間内に終了しない場合、以降のコードを実行します