• Python并发编程-进程池的返回值


    同步或异步获取返回值

    #p = Pool()
        #p.map(funcname,iterable) 默认异步的执行任务,且自带close,join功能
        #p.apply(), 同步调用进程池的方法
        #p.apply_async(),异步调用,和主进程完全异步,需要手动close和join
    from multiprocessing import Pool
    import time
    def func(i): #返回值只有进程池才有,父子进程没有返回值
        time.sleep(0.5)
        return i*i
    
    if __name__ == '__main__':
        p = Pool(5)
        res_l = [] #从异步提交任务获取结果
        for i in range(10):
            # res = p.apply(func,args=(i,)) #apply的结果就是func的返回值,同步提交
            # print(res)
    
            res = p.apply_async(func,args=(i,)) #apply_sync的结果就是异步获取func的返回值
            res_l.append(res) #从异步提交任务获取结果
        for res in res_l:  print(res.get()) #等着func的计算结果
    

    利用MAP返回值

    • map是一次性返回所有子进程的返回值, 自带close,join
    • apply_async分批返回
    from multiprocessing import Pool
    import time
    def func(i): #返回值只有进程池才有,父子进程没有返回值
        time.sleep(0.5)
        return i*i
    
    if __name__ == '__main__':
        p = Pool(5)
        ret = p.map(func,range(10))
        print(ret)
    
  • 相关阅读:
    elementUI table中的button 操作
    数组
    数组,字符串,数字之间的相互转换
    Element upload
    Vue中涉及到的三目运算与v-if结合
    ElementUI的input用法
    javascript的正则表达式
    Vue表单+Vue全局指令 v-focus 的引用
    ztree 异步加载大数据(一)
    vue mixins 混入项目实例
  • 原文地址:https://www.cnblogs.com/konglinqingfeng/p/9699947.html
Copyright © 2020-2023  润新知