1
我有一个线程,每10ms测量一个电压值(从外部设备捕获),应用一些初级低通滤波并将该值存储在变量lp_voltage
中。主程序每隔几秒需要读取存储在lp_voltage
中的值。从Python中的一个线程读取值:队列或全局变量?
我想通了两种方法可能做到这一点与threading
框架:
- Sharing the global variable
lp_voltage
between the thread and the main program,使用线程的global
关键字。这不利于使用全局变量,即often considered bad practice。 - Using the Queue module,看起来更多pythonic。但是我不知道如何适应我的问题:主程序只需要不时地访问
lp_voltage
的瞬时值,而不是全部的数据队列。
什么样的选择最好?如果队列更好,如何使它们适应我的问题?
我结束了使用像你提议的解决方案,它工作得很好。唯一的区别是,将主代码从类中取出,而是读取'task'对象的'lp_voltage'属性。 –