Python的:相互依存的进程/线程队列(Python: interdependent proces

2019-10-21 10:21发布

我有四个队列,每个有多个进程/是通过以下方式相互依存的主题:

  1. 队列1从磁盘读取和复制一个文件到RAM
  2. 队列2取入RAM中的文件并在其上执行操作
  3. 队列3取队列2的结果并在其上执行单独的操作
  4. 队列4把最终结果回磁盘

我想这4个队列,以平行于该队列2必须等待队列1至地方的至少一个过程的警告/线程操作就可以尽可能多地(以及类似地队列2具有放置在队列3项,和队列3 4)。

什么是在Python去执行这个(无论是队列和线程/进程的实现)的最好方法?

将排队2和队列3块彼此由于GIL如果我使用线程? 我读I / O和计算还可以发生在并行,所以我确定即使队列1/2/4可以并行工作,和队列3是按顺序排队与2。

Answer 1:

你有什么实际需要每个这样的4个步骤是独立的线程/进程什么特别的原因? 个人而言,我只希望实现一个函数/调用类中的所有4个步骤,然后用multiprocessing.Pool的地图上感兴趣的文件名要调用的函数并行。

这种模式(只读取和处理)的更简单的实施例在此讨论的Q & 甲 。 作为回答指出,如果出现瓶颈的I / O,而不是处理,只是在池中创建多个进程。



文章来源: Python: interdependent process/thread queues