gpt4 book ai didi

python - 如何检索通过 multiprocessing.Process 调用的函数返回的多个值

转载 作者:太空狗 更新时间:2023-10-29 18:16:30 24 4
gpt4 key购买 nike

我有这样一个场景:

for each in content :
pdf_output,job_id=createpdf(each)
if pdf_output :
pdf_output = pdf_output + pdf_output

我正在尝试并行化整个过程。像这样

 jobs=[]
for each in content :
jobs.append(multiprocessing.Process(target=self.createpdf, args=(content)))

for each in jobs :
jobs.start()
for each in jobs :
jobs.join()

我如何理智地完成任务

if pdf_output : 
pdf_output = pdf_output + pdf_output

对于每项工作?如何检索 createpdf 发送的 2 个返回值并对其进行处理?我认为 multiprocessing.Queue 是一个线索,但我该如何实现它?

最佳答案

对于这样一个简单的任务,您不需要队列。我建议使用池。 Pool.map 方法可以将函数并行应用于一系列值:

import multiprocessing
def createpdf(data):
return ("This is my pdf data: %s\n" % data, 0)


data = [ "My data", "includes", "strings and", "numbers like", 42, "and", 3.14]
number_of_processes = 5
results = multiprocessing.Pool(number_of_processes).map(createpdf, data)
outputs = [result[0] for result in results]
pdfoutput = "".join(outputs)

关于python - 如何检索通过 multiprocessing.Process 调用的函数返回的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com