我正在使用python 2.7.10.我读了很多文件,将它们存储到一个大的列表中,然后尝试调用多处理并将大列表传递给那些多进程,这样每个进程都可以访问这个大的列表并进行一些计算.
我正在使用像这样的Pool:
def read_match_wrapper(args):
args2 = args[0] + (args[1],)
read_match(*args2)
pool = multiprocessing.Pool(processes=10)
result=pool.map(read_match_wrapper,itertools.izip(itertools.repeat((ped_list,chr_map,combined_id_to_id,chr)),range(10)))
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)
基本上,我将多个变量传递给'read_match'函数.为了使用pool.map,我编写了'read_match_wrapper'函数.我不需要从这些过程中获得任何结果.我只是想让他们跑步和完成.
当我的数据列表'ped_list'非常小时,我可以完成整个过程.当我加载所有数据(如10G)时,它生成的所有多进程都显示为"S",似乎根本不起作用.
我不知道你可以通过池访问多少数据?我真的需要帮助!谢谢!