确保工作人员在加载下一个任务之前完成池中的任务以提高内存效率

时间:2018-05-22 23:02:22

标签: python memory python-multiprocessing pool

我一直在尝试理解多处理模块。

我有1000个文件(总大小= 8 GB),其中包含我需要过滤的行。我根据我的过滤条件为每个文件filename_good filename_bad创建了两个文档。

  • 下面的Globs是1000个文件名列表
  • startroutine是我执行过滤和编写的例程
  • 我已经尝试过改变chunksize和maxtasksperchild但是我一直在记忆错误
  • 在打开下一个文件之前,8个进程中的每个进程都没有完成其启动例程;因此记忆错误。
  • 我原本以为maxtasksperchild会导致每个人在被杀之前完成启动程序并创建一个新进程。

from multiprocessing import Pool if __name__ == '__main__' : with Pool(processes=8, maxtasksperchild=1) as pool: pool.map(startroutine,globs,chunksize=1)

0 个答案:

没有答案