python 中 multiprocessing.dummy import Pool as ThreadPool 如何使用
时间: 2024-04-10 20:28:01 浏览: 150
在 Python 中,`multiprocessing.dummy` 模块提供了一个与 `multiprocessing` 模块类似的接口,但是它是基于线程而不是进程的。它允许在多个线程中并行执行任务。
以下是使用 `multiprocessing.dummy.Pool` 的示例:
```python
from multiprocessing.dummy import Pool as ThreadPool
# 定义一个任务函数
def task(number):
print(f"Executing task {number}")
# 在这里编写具体的任务逻辑
return number * 2
# 创建一个线程池,指定线程数量
pool = ThreadPool(5)
# 提交任务到线程池
results = pool.map(task, range(10))
# 关闭线程池
pool.close()
pool.join()
# 获取任务结果
for result in results:
print(f"Task result: {result}")
```
在上述示例中,我们首先定义了一个名为 `task` 的函数作为要执行的任务。然后,使用 `multiprocessing.dummy.Pool` 创建了一个线程池,指定线程数量为 5。
通过 `pool.map()` 方法,我们将任务函数 `task` 和任务参数列表 `range(10)` 提交给线程池,以并行执行任务。
最后,我们使用 `pool.close()` 关闭线程池,并通过 `pool.join()` 等待所有任务完成。然后,通过遍历 `results` 获取任务的结果,并进行处理。
需要注意的是,`multiprocessing.dummy.Pool` 在语法和用法上与 `multiprocessing.Pool` 类似,但是它是基于线程的。因此,它适用于 I/O 密集型任务,但不适用于 CPU 密集型任务。
阅读全文