Python:在使用全局变量打破线程内的循环时遇到问题

Python: Having trouble breaking a loop inside a thread using global variables

所以我真的是线程的新手...我正在尝试使用全局变量来打破线程内的循环,但由于某种原因线程似乎不明白我已经更改了全局变量。这是我的代码...非常感谢任何帮助。 :)

import threading

keepThreadRunning = True

def myThreadFunc():
    while keepThreadRunning:
        print keepThreadRunning
    return

myThread = threading.Thread(target = myThreadFunc())
myThread.start()
keepThreadRunning = False
myThread.join()

它永不停止的原因是代码永远不会到达未设置标志的位置。

myThread = threading.Thread(target = myThreadFunc())

您正在主线程中立即执行函数。它会阻塞直到该函数退出,因为没有任何东西可以将 keepThreadRunning 设置为 False 它永远不会退出。

相反,您应该传递对函数的引用。

myThread = threading.Thread(target = myThreadFunc)

然后会在新线程中正确执行。