如何使用python pool.imap
时间: 2024-05-09 19:17:20 浏览: 7
Python中的`pool.imap()`函数是一个迭代器函数,用于并行处理可迭代的对象。它可以让你在多个CPU核心上同时执行函数,并返回结果。
下面是一个使用`pool.imap()`函数的示例:
```python
import multiprocessing
def square(x):
return x*x
if __name__ == '__main__':
mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
with multiprocessing.Pool(processes=4) as pool:
result = pool.imap(square, mylist)
for r in result:
print(r)
```
在这个示例中,我们定义了一个`square()`函数,用于计算一个数的平方。然后,我们创建一个包含10个数字的列表`mylist`,并使用`pool.imap()`函数并行计算每个数字的平方。我们使用`multiprocessing.Pool()`创建一个进程池,将`processes`参数设置为4,以便使用4个处理器核心来并行处理任务。`pool.imap()`函数返回一个迭代器对象,我们可以使用`for`循环来遍历结果,并打印每个数字的平方。
需要注意的是,在使用`pool.imap()`时,我们必须在`if __name__ == '__main__':`语句块中调用它。这是为了避免在Windows平台上出现多次调用的问题。