我已经在stackoverflow上搜索了有关python多重处理的答案,但是还没有找到解决内存泄漏的方法。
据我所知,map_async
和map
将关闭工作程序并释放文件列表中每个文件的内存。为什么运行下面的代码时我的内存使用量继续增加?
number_of_workers = 4
files = []
for file in glob.glob("*.txt"):
files.append(file)
def bleualign(file):
cmd = "python3 '../bleualign/bleualign.py' -f file -params X"
os.system(cmd)
cmd = "python3 '../bleualign/bleualign.py' -f file -params Y"
os.system(cmd)
def multicore():
mypool = Pool(processes=number_of_workers, maxtasksperchild=1)
mypool.map_async(bleualign, files, chunksize=1)
mypool.close()
mypool.join()
if __name__=='__main__':
multicore()