Python异步进程池示例,同时可接收返回值

2025-04-18 13:46:24

1、import multiprocessing as mpfrom time import sleepimport osdef work(msg): sleep(2) print(msg) return 'worker return' + msg #为函数调用返回相关值if __name__ == '__main__': pool = mp.Pool(processes = 4) result = [] for i in range(10): msg = "hello %d"%i r = pool.apply_async(work,(msg,))#向进程池中加入要执行的事件 result.append(r)#关于多线程执行的时候返回值是有序的原因说明:因为多线程只是执行的时候顺序是无序的,但是加入时是用for 有序插入,返回的对象在for的每次循环中顺序插入新列表,所以也是有序的。 for res in result: print(res.get()) pool.close() #关闭进程池事件加入通道,即不能再向进程池中加入事件 pool.join() #阻塞等等进程池处理事件结束后回收进程池

2、参数说明:apply_async(func,args,kwds)功能: 以异步的方式将要执行的事件放入进程池(异步:放入进程池后无顺序执行)参数:func : 要执行的函数args : 给函数按位置传参kwds : 给函数按照键值传参返回值 : 返回事件执行后的返回值对象,可以通过调用get() 函数获取事件函数return的内容Pool()功能:创建进程池返回值类型:进程池对象参数<1>的名称为(processes=整数型)用于设置进程池中进程的数量。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢