2024-04-26 18:20:35 发布
网友
我对返回大量数据的进程使用map_async。normal map_async会导致数据存储在内存中,然后在处理完所有内容后返回。为了解决这个问题,我使用了一种生成器方法:
Combining itertools and multiprocessing?
但是,这并没有充分利用多线程(例如,如果完成了29个线程而挂起了1个线程,则在所有人都完成之前,它不会启动下一批作业)。有没有一种方法可以让map_异步,或者是否存在一个类似的函数,在每个线程完成时将其返回发送到回调函数?在
你想要的是使用基于生产者和消费者的解决方案。生产者将任务放入multiprocessing.Queue,消费者(子进程)在一个循环中获取并处理它们。在
multiprocessing.Queue
This是一个很好的问题,有一个(详细的)可能的解决方案。在
你想要的是使用基于生产者和消费者的解决方案。生产者将任务放入
multiprocessing.Queue
,消费者(子进程)在一个循环中获取并处理它们。在This是一个很好的问题,有一个(详细的)可能的解决方案。在
相关问题 更多 >
编程相关推荐