我的简单 Python 应用程序使用 PyQt4 作为其 GUI,单击 QPushButton
会使应用程序通过 serial
发送消息。 GUI 元素也经常更新。
问题:我不知道如何实现多线程。没有多线程进程是否会导致应用程序在发送串行通信时响应速度较低且一致性较差,尤其是在发送串行消息的同时更新 GUI 元素时?
最佳答案
这要看情况。当您打字时,您的 PC 99.9995% 的时间都处于空闲状态;因此它有大量的 CPU 能力用于后台任务。大多数人不会注意到这一点,因为病毒扫描程序通常会消耗 5-20% 的性能。但键入或单击按钮几乎不会影响 CPU 负载。
OTOH,如果您在 UI 线程中运行较长的任务,则 UI 会锁定,直到任务完成。因此,从用户的角度来看,UI 将是阻塞的,而对于串行端口来说,世界将是好的。总的来说,这会更快,但会感觉缓慢。
由于同步或锁定,多线程通常比在单线程中执行所有操作要慢。但单线程无法扩展。最终,您遇到了障碍(性能方面),没有任何技巧可以使单个线程执行得更快。
关于python - PyQt4 和写入串行是否需要多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18981428/