python获取进程的返回结果_Python异步进程池示例,同时可接收返回值

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 18:44   130   0

import multiprocessing as mp

from time import sleep

import os

def 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() #阻塞等等进程池处理事件结束后回收进程池

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP