使用python的^{
import multiprocessing
# completely_unrelated_array = range(2**25)
def foo(x):
for x in xrange(2**28):pass
print x**2
P = multiprocessing.Pool()
for x in range(8):
multiprocessing.Process(target=foo, args=(x,)).start()
取消注释completely_unrelated_array
的创建,您会发现每个派生进程都为completely_unrelated_array
的副本分配内存!这是一个很小的例子,说明了一个更大的项目,我不知道如何解决;多处理似乎可以复制所有全局的东西。我不需要共享内存对象,我只需要传入x
,并在不占用整个程序内存开销的情况下处理它。
侧边观察:有趣的是,print id(completely_unrelated_array)
内的foo
给出了相同的值,这暗示了这可能不是拷贝。。。
目前没有回答
相关问题 更多 >
编程相关推荐