使用传感器重构 raspberry pi 上的多线程程序

Refactoring multi thread program on raspberry pi with sensors

我正在使用 raspberry pis 和旨在监测温度变化的传感器进行物联网实验。每个 raspberry pi 连接到多个传感器。我的目标是每秒读取每个传感器一次,将数据存储在缓冲区(实际缓冲区或 csv 文件)中并将数据发布到代理。该程序现在正在队列中执行所有操作。结果有些延迟。我已经测试过,结果是延迟来自阅读过程。有什么办法可以减少阅读延迟吗?多线程会解决这个问题吗?如果是这样,我认为是创建 3 个线程。传感器线程读取数据并存储在缓冲区中。 Communicator线程连接到broker,读取buffer中的数据发送给broker。主线程将管理传感器线程和通信器线程。如果我以这种方式重构程序,我是为每个传感器编写一个传感器线程还是为所有传感器编写一个传感器线程?

如有任何建议,我们将不胜感激。

在重新设计您的应用程序之前,您应该缩小瓶颈所在的范围。为了对此进行诊断,我会尝试将传感器每次读取的开始和结束记录到您保存在内存中的字符串缓冲区中。这样做 30 秒左右。然后,停止从传感器读取并将缓冲区写入日志文件。如果日志文件显示每个传感器读取的开始和结束之间存在延迟,那么这就是瓶颈所在。如果没有,那么瓶颈可能在于不断将 CS​​V 文件写入磁盘。