python 多个子进程并返回值
apply_async()
本身就可以返回被进程调用的函数的返回值。上一个创建多个子进程的代码中,如果在函数func
中返回一个值,那么pool.apply_async(func, (msg, ))
的结果就是返回pool中所有进程的值的对象(注意是对象,不是值本身)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import multiprocessing import time def func(msg): return multiprocessing.current_process().name + '-' + msg if __name__ = = "__main__" : pool = multiprocessing.Pool(processes = 4 ) # 创建4个进程 results = [] for i in xrange ( 10 ): msg = "hello %d" % (i) results.append(pool.apply_async(func, (msg, ))) pool.close() # 关闭进程池,表示不能再往进程池中添加进程,需要在join之前调用 pool.join() # 等待进程池中的所有进程执行完毕 print ( "Sub-process(es) done." ) for res in results: print (res.get()) |
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
· Windows 提权-UAC 绕过
2020-02-18 java 查找list中重复数据
2020-02-18 Java Set对象去重
2020-02-18 Java--如何高效向List中存放不重复的数据(附带时间测试)