>我正在尝试在我的代码中实现并行化,但我无法从multiprocessing.Process
中获得结果。我有一个看起来像这样的代码:
if __name__ == '__main__':
labels = ['neutral', 'bad', 'good']
procs = []
for i in labels:
p = Process(target = process, args = (i, ))
procs.append(p)
p.start()
for proc in procs:
proc.join()
函数process
加载NLTK语料库,对文档进行一些转换并返回列表。我需要使用不同的参数调用此函数三次来处理三个文件夹。所以我正在考虑并行运行它。我想将返回的列表添加到带有labels
键的字典中。结果应如下所示:
result = {'neutral': [returned_list], 'bad': ....
我已经阅读了有关Queue
和Pipe
的信息,但是我不知道如何在我的情况下使用它们,因此我很乐意提供任何帮助。
你可以这样尝试
import multiprocessing
def action(data):
return {data:["computed_action"]}
labels = ['neutral', 'bad', 'good']
proc_count = 5
result = multiprocessing.Pool(proc_count).map(action,labels)
print(result)
输出
[{'neutral': ['computed_action']}, {'bad': ['computed_action']}, {'good': ['computed_action']}]