情景假设,多进程并行处理列表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)