python ThreadPoolExecutor中的shutdown()
时间: 2023-10-17 18:26:42 浏览: 207
shutdown() 方法用于关闭 ThreadPoolExecutor,并等待所有线程任务执行完毕。它有两种可选的参数:
1. `wait=True`(默认值):调用 shutdown() 方法后,会阻塞主线程,直到所有线程任务执行完毕。
2. `wait=False`:调用 shutdown() 方法后,不会阻塞主线程,立即返回。此时如果有尚未执行的线程任务,它们会继续执行;如果没有尚未执行的任务,则不做任何操作。
下面是一个示例代码:
```python
from concurrent.futures import ThreadPoolExecutor
import time
def task(name):
print(f"Task {name} is starting...")
time.sleep(2)
print(f"Task {name} is done!")
# 创建 ThreadPoolExecutor 对象
executor = ThreadPoolExecutor(max_workers=3)
# 提交任务给线程池
for i in range(5):
executor.submit(task, i)
# 关闭线程池,并等待所有任务执行完毕
executor.shutdown()
print("All tasks are done!")
```
在上述示例中,我们创建了一个最大工作线程数为 3 的 ThreadPoolExecutor 对象,并提交了 5 个任务。然后调用了 `shutdown()` 方法来关闭线程池,并等待所有任务执行完毕。最后打印出 "All tasks are done!" 表示所有任务已完成。
阅读全文