我是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()
但是我想知道如何在多处理中包括该依赖关系逻辑。谁能帮我解决这个问题。