使用concurrent.futures.ProcessPoolExecutor线程池创建多线程,举个例子
时间: 2023-07-16 07:15:04 浏览: 91
好的,可以举一个简单的例子来说明如何使用concurrent.futures.ProcessPoolExecutor线程池创建多线程。首先,我们需要导入concurrent.futures模块中的ProcessPoolExecutor类,然后创建一个该类的实例,设置并发线程数,最后使用submit()方法来提交待执行任务并启动多线程。
下面是一个简单的例子:
```python
import concurrent.futures
# 定义一个简单的函数,用于打印当前线程的名称
def print_thread_name():
print(f'Current thread name is {threading.current_thread().name}')
if __name__ == '__main__':
# 创建ProcessPoolExecutor实例,设置并发线程数为3
with concurrent.futures.ProcessPoolExecutor(max_workers=3) as executor:
# 提交4个任务给线程池
futures = [executor.submit(print_thread_name) for _ in range(4)]
# 打印每个任务执行结果
for future in concurrent.futures.as_completed(futures):
print(future.result())
```
在上面的例子中,我们首先定义了一个简单的函数print_thread_name(),用于打印当前线程的名称。然后,我们使用with语句创建了一个ProcessPoolExecutor实例,并设置并发线程数为3。接着,我们使用submit()方法向线程池中提交4个任务。最后,我们使用as_completed()方法和for循环遍历所有任务的执行结果。
在执行上述代码时,我们可以发现,线程池中会同时运行最多3个线程,并且每个任务的执行结果是随机的。
阅读全文