我有一个大的只读对象,我希望子进程使用它,但不幸的是这个对象不能被pickle。考虑到它是只读的,我考虑将它声明为全局的,然后在池中使用一个初始化函数来执行必要的复制。我的代码是这样的:
def f(processes, args):
global pool
pool = multiprocessing.Pool(processes,setGlobal,[args])
def setGlobal(args):
# global object to be used by the child processes...
global obj
obj = copy.deepcopy(args)
函数setGlobal执行初始化。我的第一个问题涉及setGlobal的参数(作为列表传递)。这些需要腌制吗?我得到的错误似乎表明他们确实如此。如果是这样的话,我如何使我的子进程可以看到不可复制的只读对象
目前没有回答
相关问题 更多 >
编程相关推荐