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)
然后会在新线程中正确执行。
所以我真的是线程的新手...我正在尝试使用全局变量来打破线程内的循环,但由于某种原因线程似乎不明白我已经更改了全局变量。这是我的代码...非常感谢任何帮助。 :)
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)
然后会在新线程中正确执行。