等待多个延时的multiprocessing.apply_async()进程完全结束最好的方法
时间: 2024-02-22 10:56:38 浏览: 152
你可以使用`multiprocessing.Pool()`和它的`join()`方法来等待所有进程完全结束。以下是一个示例代码:
```python
import multiprocessing
import time
def process(n):
# 延时操作
time.sleep(1)
return n * n
if __name__ == '__main__':
# 创建进程池
pool = multiprocessing.Pool()
# 启动多个进程
results = [pool.apply_async(process, args=(n,)) for n in range(5)]
# 等待所有进程完成
pool.close()
pool.join()
# 获取结果
for result in results:
print(result.get())
```
在上面的代码中,我们首先创建了一个进程池`multiprocessing.Pool()`,然后使用`apply_async()`方法启动了5个进程。完成后,我们使用`close()`方法关闭进程池,并使用`join()`方法等待所有进程完全结束。最后,我们使用`get()`方法获取每个进程的结果并打印它们。
请注意,`join()`方法在所有进程完成之前会一直阻塞,因此它是等待所有进程完成的最好方法之一。
阅读全文