映射异步完成后立即执行回调

2024-04-26 18:20:35 发布

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

我对返回大量数据的进程使用map_async。normal map_async会导致数据存储在内存中,然后在处理完所有内容后返回。为了解决这个问题,我使用了一种生成器方法:

Combining itertools and multiprocessing?

但是,这并没有充分利用多线程(例如,如果完成了29个线程而挂起了1个线程,则在所有人都完成之前,它不会启动下一批作业)。有没有一种方法可以让map_异步,或者是否存在一个类似的函数,在每个线程完成时将其返回发送到回调函数?在


Tags: and数据方法函数内存map内容async
1条回答
网友
1楼 · 发布于 2024-04-26 18:20:35

你想要的是使用基于生产者和消费者的解决方案。生产者将任务放入multiprocessing.Queue,消费者(子进程)在一个循环中获取并处理它们。在

This是一个很好的问题,有一个(详细的)可能的解决方案。在

相关问题 更多 >