我的要求是生成列表允许的组合。下面的代码是满足我需求的简化版本。
def getChild(tupF):
if len(tupF) <= 60:
for val in range(1,10): #in actual requirement, it is not a fixed range, but some complex processing to determing the list which need to be appended
t=list(tupF) #I am converting a tuple to list and after appending it, back to tuple as if I just handle as list, some how it didn't work
t.append(val)
getChild(tuple(t))
t=[]
else:
print(tupF)
tup = ()
getChild(tup)
但是,由于级别数很高(60),而且我的每一个组合都是完全独立的,因此我想使此代码成为多进程。
我尝试添加
t.append(val)
tmpLst.append(tuple(t))
t=[]
if __name__ == '__main__':
pool = Pool(processes=3)
pool.map(getChild,tmpLst)
但是这没有用,因为我的工作进程正在尝试进一步细分。就我而言,我认为子流程不会爆炸,因为一旦父流程调用了一组子流程,我可以终止父流程,因为所有所需的信息都在我要传递给的元组中子进程。
请让我知道此问题是否适合多处理,如果可以,请提供有关如何使其成为多处理的指导,以便减少计算时间。我没有编写多处理代码的经验,因此,如果您可以指出一个相关的示例,那就太好了。谢谢。