小编use*_*470的帖子

multiprocessing.Manager()如何在python中工作?

我关心python中的multiprocessing.Manager(),这是一个例子,

import multiprocessing 

def f(ns):

    ns.x *=10
    ns.y *= 10

if __name__ == '__main__':
    manager = multiprocessing.Manager()
    ns = manager.Namespace()
    ns.x = 1
    ns.y = 2

    print 'before', ns
    p = multiprocessing.Process(target=f, args=(ns,))
    p.start()
    p.join()
    print 'after', ns
Run Code Online (Sandbox Code Playgroud)

而输出是,

before Namespace(x=1, y=2)
after Namespace(x=10, y=20)
Run Code Online (Sandbox Code Playgroud)

直到现在,它按照我的预期工作,然后我修改了这样的代码,

import multiprocessing 

def f(ns):

    ns.x.append(10)
    ns.y.append(10)

if __name__ == '__main__':
    manager = multiprocessing.Manager()
    ns = manager.Namespace()
    ns.x = []
    ns.y = []

    print 'before', ns
    p = multiprocessing.Process(target=f, args=(ns,))
    p.start()
    p.join()
    print 'after', ns …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

50
推荐指数
2
解决办法
5万
查看次数

标签 统计

multiprocessing ×1

python ×1