Python 3.x Python多处理::在满足退出条件时生成子项并杀死所有子项
我有一个函数,可以在图像文件列表中顺序搜索特定功能,并在找到匹配项后立即终止。这个函数运行几乎需要一秒钟的时间,所以我希望使用多处理,看看是否可以加快速度Python 3.x Python多处理::在满足退出条件时生成子项并杀死所有子项,python-3.x,python-multiprocessing,Python 3.x,Python Multiprocessing,我有一个函数,可以在图像文件列表中顺序搜索特定功能,并在找到匹配项后立即终止。这个函数运行几乎需要一秒钟的时间,所以我希望使用多处理,看看是否可以加快速度 def match(a, b, feature) -> boolean: # time.sleep([0 - 10]) # simulates a long time-consuming function # return isMatch # could be True or False depending on w
def match(a, b, feature) -> boolean:
# time.sleep([0 - 10]) # simulates a long time-consuming function
# return isMatch # could be True or False depending on whether feature was found
p = Pool(processes=4)
list = p.map(match, [
['imgA', 'img1', feature],
['imgA', 'img2', feature],
['imgA', 'img3', feature],
['imgA', 'img4', feature],
['imgA', 'img5', feature],
...
...
['imgA', 'img100', feature],
])
found = next(x for x in list if x == True, False)
这个很好用。顺便说一句,我实际上并没有硬编码参数数组。这只是为了举例说明。然而,关于这种方法,我有几个问题:
a
和feature
保持不变。我想扩展此解决方案,以便将a
和b
作为列表。在这种情况下,对于每个a
,我都会生成一个子进程来针对所有可能的b
s处理单个a
,这反过来会生成将针对单个b
处理单个a
的后代。每次我在a
和b
之间找到匹配项时,我都希望终止正在处理单个a
的子进程的所有子进程,该子进程针对所有可能的b
进行处理阿西姆别客气!我想我搜索得不够好!=/这个问题是对Nevermind的重复!我想我搜索得不够好!=/这个问题是重复的