gpt4 book ai didi

python - 多处理2个不同的函数python3

转载 作者:行者123 更新时间:2023-12-01 02:23:50 25 4
gpt4 key购买 nike

我在 Python 中的Multiprocessing 上苦苦挣扎了一段时间。我想同时运行两个独立的函数,等到两个计算完成,然后继续两个函数的输出。像这样的事情:

# Function A: 
def jobA(num):
result=num*2
return result

# Fuction B:
def jobB(num):
result=num^3
return result

# Parallel process function:

{resultA,resultB}=runInParallel(jobA(num),jobB(num))

我发现了多处理的其他示例,但是它们仅使用一个函数或没有返回输出。有人知道该怎么做吗?非常感谢!

最佳答案

我建议手动创建进程(而不是作为池的一部分),并通过 multiprocessing.Queue 将返回值发送到主进程。这些队列可以以安全且相对高效的方式共享几乎任何Python对象。

这是一个使用您发布的职位的示例。

def jobA(num, q):
q.put(num * 2)

def jobB(num, q):
q.put(num ^ 3)

import multiprocessing as mp
q = mp.Queue()
jobs = (jobA, jobB)
args = ((10, q), (2, q))
for job, arg in zip(jobs, args):
mp.Process(target=job, args=arg).start()

for i in range(len(jobs)):
print('Result of job {} is: {}'.format(i, q.get()))

打印出:

Result of job 0 is: 20
Result of job 1 is: 1

但是您当然可以使用这些值进行任何您想要的进一步处理。

关于python - 多处理2个不同的函数python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644554/

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