pool.imap_unordered()
时间: 2023-10-15 09:23:20 浏览: 50
`pool.imap_unordered()`是Python中多线程/多进程编程中的一个函数,它用于并行地处理可迭代对象中的元素。在使用此函数之前,您需要使用`multiprocessing`或`concurrent.futures`模块创建一个进程池或线程池。
`pool.imap_unordered()`函数返回一个迭代器,它可以按照元素完成的顺序产生结果。与`pool.map()`不同的是,它不保证结果的顺序与输入的顺序一致。
下面是一个简单的示例,演示如何使用`pool.imap_unordered()`函数:
```python
import multiprocessing
def process_item(item):
# 在这里处理每个元素
return processed_item
if __name__ == '__main__':
items = [1, 2, 3, 4, 5]
with multiprocessing.Pool() as pool:
results = pool.imap_unordered(process_item, items)
for result in results:
# 处理每个结果
print(result)
```
在上面的示例中,我们首先定义了一个`process_item()`函数,用于处理每个元素。然后,我们创建了一个进程池`pool`,并使用`pool.imap_unordered()`将`process_item()`应用于`items`列表中的每个元素。最后,我们使用迭代器遍历结果并进行处理。
请注意,`pool.imap_unordered()`函数返回的结果是无序的,即使在输入列表中的元素顺序不同,也可能以不同的顺序生成结果。