gpt4 book ai didi

python - 具有不同功能的多进程池

转载 作者:太空狗 更新时间:2023-10-29 16:53:45 27 4
gpt4 key购买 nike

大多数多进程工作池的示例在不同的进程中执行单个功能,例如

def foo(args):
pass

if __name__ == '__main__':
pool = multiprocessing.Pool(processes=30)
res=pool.map_async(foo,args)

有没有办法在池中处理两个不同且独立的函数?这样你就可以分配 f.e. foo() 有 15 个进程,bar() 有 15 个进程,或者池是否绑定(bind)到单个函数?或者你必须为不同的功能手动创建不同的流程

 p = Process(target=foo, args=(whatever,))
q = Process(target=bar, args=(whatever,))
q.start()
p.start()

忘记工作池了吗?

最佳答案

要传递不同的功能,您可以简单地多次调用map_async

举个例子来说明

from multiprocessing import Pool
from time import sleep

def square(x):
return x * x

def cube(y):
return y * y * y

pool = Pool(processes=20)

result_squares = pool.map_async(f, range(10))
result_cubes = pool.map_async(g, range(10))

结果将是:

>>> print result_squares.get(timeout=1)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> print result_cubes.get(timeout=1)
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]

关于python - 具有不同功能的多进程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976372/

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