所以我真的很新线程...我试图使用一个全局变量来打破一个线程内部的循环但由于某种原因线程似乎不明白我已经改变了全局变量。这是我的代码...非常感谢任何帮助。 :)
import threading
keepThreadRunning = True
def myThreadFunc():
while keepThreadRunning:
print keepThreadRunning
return
myThread = threading.Thread(target = myThreadFunc())
myThread.start()
keepThreadRunning = False
myThread.join()
答案 0 :(得分:3)
它永远不会停止的原因是代码永远不会到达未设置标志的位置。
myThread = threading.Thread(target = myThreadFunc())
您正在主线程中立即执行该功能。它将一直阻止,直到该函数退出,因为没有任何内容可以将keepThreadRunning
设置为False
,它永远不会退出。
相反,您应该传递对该函数的引用。
myThread = threading.Thread(target = myThreadFunc)
然后在新线程中正确执行。