永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-03-08 03:32
p=Pool(20)
with open(temp_path,'r') as f:
for line in f.readlines():
p.apply_async(execute_monitor_sql,args=(type,)) --其中execute_monitor_sql函数会返回一个执行结果。我需要将这些结果汇总到一个参数
p.close()
p.join()
但执行的时候并没有返回任何参数
最佳答案
共享变量的方法。

没有办法直接实现你的需求,但是,你可以用共享变量的方法实现,比如:
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()
全部回答
最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人。 一、python中的 os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系 大家都习惯用os.systemv()函数执行linux命令,该函数的返回值十进制数(分别对应一个16位的二进制数)。该函数的返回值与 linux命令返回值两者的转换关系为:该函数的返回值(十进制)转化成16二进制数,截取其高八位(如果低位数是0的情况下,有关操作系统的错误码共 131个,所以低位都是零),然后转乘十进制数即为 linux命令返回值0。 例如: os.system()返回值为0 linux命令返回值也为0. os.system()返回值为256,十六位二进制数示为:00000001,00000000,高八位转乘十进制为 1 对应 linux命令返回值 1 os.system()返回值为512,十六位二进制数示为:00000010,00000000,高八位转乘十进制为 2 对应 linux命令返回值 2 ......其它同理 os.system()返回值为32512,十六位二进制数示为:0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女朋友和我分手后 他前男友找她合好 她立马同
梦见蛇,我拿起刀来砍它不断,这是代表什么呢?
我的手机里有两个卡联通移动可是只要在楼上两
风杨金丝楠艺术展馆地址在哪,我要去那里办事
弘和建设工程在哪里啊,我有事要去这个地方
科腾手柄手机怎么用
大母牛下完小牛乳头硬什么原因
CDR文件打不开,提示“不能创建DOM文档,没有
罗田县黄冈潜江清水虾王我想知道这个在什么地
信誉建材经销处地址有知道的么?有点事想过去
湘潭的朋友们,知道怎么考驾照吗?大概需要多
中通快递转邮政怎样查巡
兰州华硕售后那一家服务好啊?
空调床垫怎么样
东京巴比伦星矢郎到底爱不爱昴流
推荐资讯
焦山楂的功效是()。A.消食止泻B.活血化瘀C.消
錂字的意思
什么是办学形式
36岁电子厂要吗?
成功申请香港的大学的博士的可能性,请各位前
如皋师范定向和统招区别
2018年读高二还能选择读文理科吗?
赫恩新出的充电泥膜咋样?有没有哥们用过了?
小猪做牧羊犬的那个电影叫什么名字
你好!这是超声提示:先天性心脏病:室间隔缺
在EXCEL中输入后手机号后出现1.384E+38,他具
厦门哪里可以去玩啊?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?