如何更新正在运行的线程中的变量,这是一个基于这样的变量的无限循环?
我尝试过的简化版本如下,当然没有结果,我找不到任何指针。
import some_module as mod
import threading
class thr (threading.Thread):
NUM = 5 # set a default value to start the script
def run (self):
mod.NUM = NUM
mod.main_loop()
try:
thr().start()
time.sleep(1)
thr().NUM = 2
time.sleep(1)
thr().NUM = 6
time.sleep(1)
thr().NUM = 8
答案 0 :(得分:1)
问题是你每次“调用”(即实例化)thr
时都会创建一个新线程。将您的代码更改为
t = thr()
t.start()
time.sleep(1)
t.NUM = 2
time.sleep(1)
t.NUM = 6
time.sleep(1)
t.NUM = 8
time.sleep(1)
答案 1 :(得分:0)
也许尝试使用队列来更改NUM变量。
https://docs.python.org/2/library/queue.html
点击此处查看示例:
通常说,队列允许您在线程之间发送数据。使用get()
从队列中获取数据,使用put()
将数据放入队列。