Pythonでスレッドプール内のスレッドを終了する方法は何ですか?
スレッドプール内のスレッドを停止するには、ThreadPoolExecutorクラスのshutdown()メソッドを使用します。
ThreadPoolExecutorを使用してスレッドプールを作成し、必要に応じてスレッドを終了する方法を示す例が次に示されています。
from concurrent.futures import ThreadPoolExecutor
import time
def task():
print("Thread started")
time.sleep(5)
print("Thread finished")
# 创建线程池
executor = ThreadPoolExecutor(max_workers=5)
# 提交任务到线程池
executor.submit(task)
# 终止线程池中的线程
executor.shutdown()
上記の例では、ThreadPoolExecutorを使用して最大5つのスレッドを持つスレッドプールを作成しました。その後、submit()メソッドを使用してタスクをスレッドプールに提出しました。最後に、shutdown()メソッドを呼び出してスレッドプール内のスレッドを終了しました。
shutdown() メソッドは、すべての送信済みのタスクが完了するのを待ってからスレッドプール内のスレッドを終了します。スレッドプール内のスレッドをすぐに終了したい場合は、shutdown_now() メソッドを使用できます。
# 立即终止线程池中的线程
executor.shutdown_now()
shutdown_now()メソッドを使用してスレッドプール内のスレッドを終了させると、未完了のタスクがキャンセルされる可能性があるので注意が必要です。