首页 > 解决方案 > 如果在多线程应用程序上运行,串行端口会变慢

问题描述

我创建了一个显示一些传感器相关值的前端 gui。这个前台gui还启动了三个不同的线程。

  1. 使用分隔符作为 b'\n\r' 从串行端口读取传入数据并触发事件
  2. 处理串口线程捕获的输入,执行一些算术运算和触发事件。
  3. 收集处理后的数据并更新 gui。

现在我的串口以 9600 波特运行,预计每 200 毫秒捕获 40 字节的数据。

这里的问题是,如果我同时运行所有这 3 个线程,串行端口线程会变慢并且无法跟上传入的数据流量。我已经使用 .inwaiting() 检查了这一点。但如果我不启动进程并更新 gui 线程,串行端口似乎工作正常。

对于 GUI,我使用 tkinter 和串行,pyserial。

那么,可以与 gui 接口一起运行的线程数是否有任何限制?如果有人对这个问题有更好的解决方案,请告诉我。

标签: multithreadingtkinterpyserial

解决方案


推荐阅读