相关疑难解决方法(0)

如何限制多处理过程的范围?

使用python的multiprocessing模块,以下设计的示例以最小的内存要求运行:

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()
Run Code Online (Sandbox Code Playgroud)

取消注释的创建,completely_unrelated_array你会发现每个衍生的进程分配内存为completely_unrelated_array!这是一个更大的项目的最小例子,我无法弄清楚如何解决方法; 多处理似乎可以复制全局的所有内容.我并不需要共享内存对象,我只需要传递x和处理它没有整个程序的内存开销.

侧面观察:有趣的是print id(completely_unrelated_array)内部foo给出相同的值,暗示某些可能不是副本......

python multiprocessing

15
推荐指数
2
解决办法
4711
查看次数

标签 统计

multiprocessing ×1

python ×1