python - 更新线程变量

标签 python multithreading

如何更新正在运行的线程内的变量,这是基于此类变量的无限循环?
我尝试过的简化版本如下,当然没有结果,而且我找不到任何指针。

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

最佳答案

问题是,每次“调用”(即实例化)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)

关于python - 更新线程变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578254/

相关文章:

Python 转换图像以使用更少的颜色

c++ - 为什么单个线程比多个线程更快,即使它们本质上具有相同的开销?

multithreading - node.js 应用程序中单进程中的多线程 socket.io

multithreading - 繁忙的游标-为什么?

python - 在 Linux 中编写 USB 设备挂载脚本的更好方法

python - 什么时候空格在 Python 中不重要?

Python 记录器在未捕获异常后停止记录

python - 用另一个查找表填充 NaN

c++ - 在多线程iocp服务器中将连接用户列表发送给新连接的用户

Java 多线程 : Behaviour when Reference count of thread object becomes zero