我的 Linux C++ 应用程序定期读取传感器数据。读取是通过简单的文件 I/O 操作完成的(操作系统正在写入文件,应用程序正在读取该文件)。关于我的平台的一些信息:
- 我有带超线程的单核处理器
- 传感器数据更新频率为1秒
- 应用程序 GUI 在主线程中运行,不应被阻塞
我考虑了两种读取传感器数据的方法:
- 在主应用程序线程中运行的计时器
- 具有无限循环的独立线程,它读取传感器数据然后休眠
哪种方法更有意义,还有其他选择吗?两种解决方案的成本是多少(例如,在第一种方法中阻塞主线程或在第二种方法中进行上下文切换)?