我正在计算创建进程(多处理模块)和使用管道发送数据的开销时间。
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
管道用于获取过程的“返回值”。但是,使用队列切换管道时,我们发现队列速度更快,这没有任何意义。因此,我认为管道的实现不是最理想的。