多处理2个不同的函数python3

2024-09-25 08:42:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我和MultiprocessingPython中挣扎了一段时间。我想同时运行两个独立的函数,等到两个计算都完成,然后继续输出两个函数。像这样:

# 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))

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


Tags: 函数returnparalleldeffunctionresultmultiprocessingprocess
1条回答
网友
1楼 · 发布于 2024-09-25 08:42:14

我建议手动创建进程(而不是作为池的一部分),并通过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()))

打印出来:

^{pr2}$

当然,您可以使用这些值进行任何进一步的处理。在

相关问题 更多 >