Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python多处理中的共享变量不';行不通_Python - Fatal编程技术网

python多处理中的共享变量不';行不通

python多处理中的共享变量不';行不通,python,Python,我想在学校的项目中使用多进程,但我在多进程之间共享变量时遇到了一个问题。为了模拟这个问题,我编写了一些代码向您展示: import multiprocessing import ctypes import time def function1(): global value while True: value.value += 1 time.sleep(1) def function2(): global value w

我想在学校的项目中使用多进程,但我在多进程之间共享变量时遇到了一个问题。为了模拟这个问题,我编写了一些代码向您展示:

import multiprocessing
import ctypes
import time


def function1():
    global value

    while True:
        value.value += 1
        time.sleep(1)


def function2():
    global value

    while True:
        value.value += 1
        time.sleep(1)


if __name__ == "__main__":
    manager = multiprocessing.Manager()
    value = manager.Value("i", 0)

    process1 = multiprocessing.Process(target=function1)
    process2 = multiprocessing.Process(target=function2)
    process1.start()
    process2.start()

    while True:
        print(value.value)
        time.sleep(1)
这是我收到的错误消息:

NameError: name 'value' is not defined
有人能帮我吗?
谢谢

您需要将共享内存值传递给每个函数,它们无法使用全局函数访问该值

导入多处理
导入ctypes
导入时间
def功能1(值):
尽管如此:
value.value+=1
时间。睡眠(1)
def功能2(值):
尽管如此:
value.value+=1
时间。睡眠(1)
如果名称=“\uuuuu main\uuuuuuuu”:
manager=multiprocessing.manager()
value=manager.value(“i”,0)
process1=多处理。Process(目标=function1,args=(值,))
process2=多处理。进程(目标=函数2,参数=(值,))
process1.start()
process2.start()
尽管如此:
打印(value.value)

感谢您的快速响应!对不起,我不明白你的编辑。“我使用输入开始游戏”是什么意思?哪些“两个变量应该改变”?这两个代码框是如何相互关联的?从我的观点来看,你所做的编辑更像是一个新的问题,也许你应该考虑提出一个新的问题,在适当的问题之后。我是新来的,对不起,输入正在输入,我将打开一个新的问题,谢谢你的欢迎和欣赏。