如何在python中使用多处理为变量赋值新值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中使用多处理为变量赋值新值相关的知识,希望对你有一定的参考价值。

def foo(var, new_value):
    var = new_value

x = 1
multiprocessing.Process(target=foo, args=(x,2))
p.start()
p.join()
print(x)

我希望print(x)的输出是2,但事实上我得到1.我怎么能为现有变量赋值?

答案

你需要使用multiprocessing shared values;

import multiprocessing
import ctypes

def foo(var, new_value):
    var.value = new_value

x = multiprocessing.Value(ctypes.c_int, 1)
print(x.value)
p = multiprocessing.Process(target=foo, args=(x,2))
p.start()
p.join()
print(x.value)

以上是关于如何在python中使用多处理为变量赋值新值的主要内容,如果未能解决你的问题,请参考以下文章