是否将共享只读数据复制到不同进程以进行多处理?
我看到的那段代码看起来像这样:
glbl_array = # a 3 Gb arraydef my_func( args, def_param = glbl_array): #do stuff on args and def_paramif __name__ == '__main__': pool = Pool(processes=4) pool.map(my_func, range(1000))
有没有办法确保(或鼓励)不同的进程没有获得glbl_array的副本但共享它。如果没有办法停止复制,我将使用memmapped数组,但我的访问模式不是很规律,所以我希望memmapped数组更慢。以上似乎是第一个尝试的事情。这是在Linux上。我只是想从Stackoverflow获得一些建议,并且不想惹恼系统管理员。你认为它会帮助,如果第二个参数是像一个真正的不可变对象glbl_array.tostring()
。
相关分类