python进程池-共享数据

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值