python 3.2全局变量在线程中不更新

时间:2013-05-24 19:53:25

标签: python multithreading while-loop python-3.2

我正在制作一个程序而且我遇到了一个问题。 我有一个线程运行,它有一个while循环,检查全局变量是否等于False,如果它等于True然后退出while循环。 问题是即使我将全局变量更新为True它仍然没有停止,它只是继续。

代码:

while loop:

while stopIt==False:
    print(stopIt) # Always prints out False, even when exit() is called
    # do things...

塞子:

def exit():
    stopIt = True

stopIt变量防御:

global stopIt
stopIt = False

1 个答案:

答案 0 :(得分:3)

global声明必须位于修改全局变量的函数内:

def exit():
    global stopIt
    stopIt = True