如何对多个进程集使用池?

2024-04-26 04:56:40 发布

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

我有两组并行操作,一组接一组,类似这样:

for i in range(A):
    pool.apply_async(func_a, (params_for_a))


for i in range(B):
    pool.apply_async(func_b, (params_for_b))

在启动func\u b进程之前,我必须等待所有func\u a进程完成。若要使用join(),我将池设置得太近(),然后为func\u b创建另一个池。创建两个池是唯一的方法吗

池和进程有什么区别? 应用异步和映射有什么区别

谢谢


Tags: 方法inforasync进程rangeparamsfunc
1条回答
网友
1楼 · 发布于 2024-04-26 04:56:40

您需要对apply_async提供给您的^{}对象执行一些操作。通常,将它们全部附加到list,然后对它们做一些事情

results = []

for i in range(A):
    results.append(pool.apply_async(func_a, (params_for_a)))

for res in results:
    # block main thread until all results are in
    res.wait() #or do something with res.get()

#all results in, proceed with pool B

相关问题 更多 >