python进程池-共享数据

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值