concurrent.futures.ThreadPoolExecutor() 代码设置 max_workers
时间: 2023-11-23 20:08:48 浏览: 96
Python concurrent.futures模块使用实例
`concurrent.futures.ThreadPoolExecutor()` 是Python标准库中的一个线程池模块,用于将需要执行的任务提交给线程池中的线程执行。在创建ThreadPoolExecutor实例时,可以通过`max_workers`参数来设置线程池中最大的线程数。
`max_workers`的默认值是`None`,表示线程池中的线程数没有限制。如果将`max_workers`设置为整数,则表示线程池中最大的线程数。例如,如果将`max_workers`设置为5,则线程池中最多有5个线程在运行。如果提交的任务数量超过线程池中的线程数,那么这些任务将会等待线程池中的线程空闲下来之后再执行。
以下是一个创建线程池的示例代码:
```python
import concurrent.futures
def my_function():
# do something here
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
futures = []
for i in range(10):
future = executor.submit(my_function)
futures.append(future)
for future in futures:
result = future.result()
```
在上面的示例中,创建了一个包含5个线程的线程池,并提交了10个任务。由于线程池中最多只有5个线程,因此只有5个任务会立即开始执行,剩余的5个任务将会等待线程池中的线程空闲下来之后再执行。最后使用`future.result()`方法来获取每个任务的执行结果。
阅读全文