python多进程获取返回值,python多进程返回值get
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