python 多进程+线程实现并发处理两个列表并返回两个列表示例
时间: 2023-06-07 10:07:03 浏览: 59
好的,让我为您解答这个问题。
下面的示例代码使用Python的`multiprocessing`模块创建并行进程来同时处理两个列表,并将结果返回到两个新列表中。
```python
import multiprocessing
def process_list(list):
# 处理列表中的数据
return processed_list
if __name__ == '__main__':
# 创建两个列表
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
# 创建进程池
pool = multiprocessing.Pool(processes=2)
# 使用进程池并发处理两个列表
result1 = pool.apply_async(process_list, args=(list1,))
result2 = pool.apply_async(process_list, args=(list2,))
# 获取处理后的结果
processed_list1 = result1.get()
processed_list2 = result2.get()
# 打印结果
print(processed_list1)
print(processed_list2)
```
在上面的代码中,`process_list()`函数被设计为处理列表中的数据并将处理后的结果返回。在`main()`函数中,我们创建了两个列表`list1`和`list2`,然后使用`multiprocessing.Pool()`方法创建一个进程池,进程池中有两个进程。
接下来,我们使用`apply_async()`方法并提供两个参数-待处理的函数和要处理的数据,对两个列表分别进行处理。注意,`apply_async()`方法会立即返回一个`AsyncResult`对象,该对象可以用于获取处理结果或取消进程。我们将每个结果存储在`result1`和`result2`对象中。
然后,使用`get()`方法从每个`AsyncResult`对象中获取处理后的结果并存储在`processed_list1`和`processed_list2`列表中。
最后,我们打印了处理后的两个列表。