如果知道耗时过长的multiprocessing.Pool().apply_async是否结束的示例
时间: 2024-02-22 11:56:53 浏览: 60
Python多进程multiprocessing.Pool类详解
5星 · 资源好评率100%
可以通过调用 `AsyncResult.ready()` 方法来查询 `apply_async` 的执行状态。例如:
```python
import multiprocessing as mp
import time
def long_running_task(x):
time.sleep(5)
return x * x
if __name__ == '__main__':
p = mp.Pool()
async_result = p.apply_async(long_running_task, args=(10,))
while not async_result.ready():
print("Task is still running...")
time.sleep(1)
result = async_result.get()
print(f"Result: {result}")
```
在这个例子中,我们使用 `apply_async` 提交了一个耗时 5 秒钟的任务,然后通过 `AsyncResult.ready()` 方法查询任务是否执行完毕。如果任务还在执行,我们会每隔 1 秒钟输出一条消息,直到任务执行完毕。当任务执行完毕后,我们调用 `AsyncResult.get()` 方法获取返回的结果。
阅读全文