首页 > 解决方案 > 将多处理池(生产者)与进程(消费者)混合

问题描述

我正在分块处理一个大型 csv 文件,并将输出写入另一个文件。对于处理位,我有以下代码:

def process_data(self):
    pool = multiprocessing.Pool(multiprocessing.cpu_count())

    for result in pool.imap(self.process_data_chunk, self.data_chunks):
        pass

目前,process_data_chunk 还写入需要锁定的输出文件。我想做的是process_data_chunk将块放入 a 中multiprocessing.Queue,并且我希望有一个单独的进程从这个队列中消费。我不确定我是否可以做到这一点?我可以与生产者和消费者的Pool单一组合吗?ProcessPoolProcess

标签: pythonmultithreadingmultiprocessingpython-multiprocessing

解决方案


推荐阅读