zoukankan      html  css  js  c++  java
  • python并发——从线程池获取返回值

    并发是快速处理大量相似任务的绝佳办法,但对于有返回值的方法,需要一个容器专门来存储每个进程处理完的结果

    from multiprocessing import Pool
    import time
    
    #返回值只有进程池才有,父子进程没有返回值
    def func(i): 
        time.sleep(1)
        return i*i
    
    if __name__ == '__main__':
        p = Pool(5)
        #从异步提交任务获取结果
        res_l = [] 
        for i in range(20):
            res = p.apply_async(func,args=(i,)) 
            res_l.append(res) 
        for res in res_l:  
            print(res.get()) 

    还有使用map的方式:

    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)
  • 相关阅读:
    var、let、const
    面向女朋友自我介绍
    ES6——class
    一个错误引发的——对异步回调与for循环(小白错误,大神勿进)
    关于this
    关于作用域
    HTML5 8
    HTML5 7
    HTML5 6
    HTML5 4
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/11936783.html
Copyright © 2011-2022 走看看