使用python

时间:2019-11-26 09:32:18

标签: python parallel-processing python-multiprocessing future

我是python的新手,现在,我对某些进程有一个要求以并行方式运行单个函数的要求,有些可能取决于其他进程。 我的数据集如下:

[
  {
    'process_id': 1,
    'dependency_id': 0
  },
  {
    'process_id': 2,
    'dependency_id': 0
  },
  {
    'process_id': 3,
    'dependency_id': 0
  },
  {
    'process_id': 4,
    'dependency_id': 2
  },
  {
    'process_id': 5,
    'dependency_id': 2
  },
  {
    'process_id': 6,
    'dependency_id': 1
  }
]

在这里

  

process_id 1,2,3应该并行运行,因为它具有   Dependency_id为0。

     

process_id 4的dependency_id为2-它应该等到   流程2完成

     

process_id 5的dependency_id为2-它应该等到   流程2完成。现在,进程4和5应该等待2并开始运行   并行。

     

process_id 6的dependency_id为1-它应该等到   流程1完成

我已经尝试过以下方式:

from multiprocessing import Process
from time import sleep

process = []
process_list =[{'process_id': 1,'dependency_id': 0},{'process_id': 2,'dependency_id': 0},{'process_id': 3,'dependency_id': 0},{'process_id': 4,'dependency_id': 2},{'process_id': 5,'dependency_id': 2},{'process_id': 6,'dependency_id': 1}]

def process_fn(process_id):
    print i

def main():
  for item in len(process_list):
     p = process(target=process_fn, args=(item['process_id']))
     process.append(p)
     p.start()

但是我想知道如何在多处理中包括该依赖关系逻辑。谁能帮我解决这个问题。

0 个答案:

没有答案