要终止线程池中的线程,可以使用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()
方法终止线程池中的线程可能会导致未完成的任务被取消。