情景假设,多进程并行处理列表temp1里的数据,并将结果存入list2
import multiprocessing
import os
def mission(i,list1,list2):
temp=list1[i]
list2[i]=temp
if __name__ == "__main__":
#情景假设,temp1里的数据多进程并行处理完以后,结果存入list2
temp1=list([[1,2],[3,4]])
manager=multiprocessing.Manager()
list1=manager.list(temp1)
list2=manager.list([0]*len(list1))#占位
# 设置一个允许多个进程并发的进程池,进程数为CPU核心数
pool = multiprocessing.Pool(processes = os.cpu_count())
for i in range(2):
# 将进程放到进程池,tuple里表示传递给mission的参数
#pool.apply(mission, (i,list1,list2,)) #按顺序
pool.apply_async(mission, (i,list1,list2,)) #不按顺序
# 扔了 1000个进程进进程池后,关闭进程池,不允许新的进程加入
pool.close()
# 运行进程池中的进程
pool.join()
# print(list1)
# print(list2)
for i in list2:
print(i)

该博客介绍了如何使用Python的multiprocessing模块进行多进程并行处理列表数据。通过创建进程池,将任务分配给每个进程,最终将处理结果存入另一个列表。示例中展示了对temp1列表的元素进行使命令mission的操作,将结果保存到list2中。
3255

被折叠的 条评论
为什么被折叠?



