在下面的示例代码中,我想要获取函数
我似乎找不到存储在“jobs”中的对象中的相关属性。
worker
的返回值。我该如何做到这一点?这个值存储在哪里?import multiprocessing
def worker(procnum):
'''worker function'''
print str(procnum) + ' represent!'
return procnum
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
jobs.append(p)
p.start()
for proc in jobs:
proc.join()
print jobs
输出:
0 represent!
1 represent!
2 represent!
3 represent!
4 represent!
[<Process(Process-1, stopped)>, <Process(Process-2, stopped)>, <Process(Process-3, stopped)>, <Process(Process-4, stopped)>, <Process(Process-5, stopped)>]
我似乎找不到存储在“jobs”中的对象中的相关属性。
multiprocessing.Queue
,而不是使用Manager
。使用Manager
需要启动一个全新的进程,这在使用Queue
时有些过度了。 - danomultiprocessing.Pool.map
来处理你的工作项列表。 - danoargs=(my_function_argument, )
,注意这里要加上,
逗号!否则 Python 会抱怨“缺少位置参数”。我花了10分钟才想明白。还要检查手册用法(在“进程类”部分下) 。 - yuqli