python多进程获取返回值,python多进程返回值get

http://www.itjxue.com  2023-01-16 09:03  来源:未知  点击次数: 

python执行多进程时,如何获取函数返回的值

共享变量的方法。

没有办法直接实现你的需求,但是,你可以用共享变量的方法实现,比如:

def worker(procnum, return_dict):

'''worker function'''

print str(procnum) + ' represent!'

return_dict[procnum] = procnumif __name__ == '__main__':

manager = Manager()

return_dict = manager.dict()

jobs = [] ? ?for i in range(5):

p = multiprocessing.Process(target=worker, args=(i,return_dict))

jobs.append(p)

p.start() ? ?for proc in jobs:

proc.join() ? ?print return_dict.values()

Python3多进程运行返回值怎么获得

from?multiprocessing?import?Pool

import?time

def?work(n):

????print('开工啦...')

????time.sleep(3)

????return?n**2

if?__name__?==?'__main__':

????q=Pool()

????#异步apply_async用法:如果使用异步提交的任务,主进程需要使用jion,等待进程池内任务都处理完,然后可以用get收集结果,否则,主进程结束,进程池可能还没来得及执行,也就跟着一起结束了

????res=q.apply_async(work,args=(2,))

????q.close()

????q.join()?#join在close之后调用

????print(res.get())

????#同步apply用法:主进程一直等apply提交的任务结束后才继续执行后续代码

????#?res=q.apply(work,args=(2,))

????#?print(res)

python 多进程获取返回值

1

def worker(procnum, return_dict):

'''worker function'''

print str(procnum) + ' represent!'

return_dict[procnum] = procnum

if name == ' main ':

manager = Manager()

return_dict = manager.dict()

jobs = []

for i in range(5):

p = multiprocessing.Process(target=worker, args=(i,return_dict))

jobs.append(p)

p.start()

2

p = multiprocessing.Pool(1)

rslt = p.map(test,('world',))

print rslt

(责任编辑:IT教学网)

更多

推荐Freehand教程文章