在Python中实现多个管道的正确方法

时间:2018-08-16 12:48:45

标签: python queue multiprocessing pipe

我正在计算创建进程(多处理模块)和使用管道发送数据的开销时间。

def worker_process_pipe(pipe, image):
    pipe.send(image)
    pipe.close()

def process_pipe(images):
    pipes = [mp.Pipe(duplex=False) for _ in range(num_cores)]
    jobs = [mp.Process(target=worker_process_pipe, args=[pipes[i][1], images[i]]) for i in range(num_cores)]

    for job in jobs: job.start()
    pipes_out = [pipe[0].recv() for pipe in pipes]
    for job in jobs: job.join()

    return pipes_out

管道用于获取过程的“返回值”。但是,使用队列切换管道时,我们发现队列速度更快,这没有任何意义。因此,我认为管道的实现不是最理想的。

0 个答案:

没有答案