我的简单 Python 应用程序使用 PyQt4 作为其 GUI,单击 aQPushButton
会导致应用程序通过serial
. GUI 元素也经常更新。
问:我不知道如何实现多线程。没有多线程进程是否会导致应用程序在发送串行通信时响应较慢和一致性较差,尤其是在发送串行消息的同时更新 GUI 元素时?
我的简单 Python 应用程序使用 PyQt4 作为其 GUI,单击 aQPushButton
会导致应用程序通过serial
. GUI 元素也经常更新。
问:我不知道如何实现多线程。没有多线程进程是否会导致应用程序在发送串行通信时响应较慢和一致性较差,尤其是在发送串行消息的同时更新 GUI 元素时?
那要看。在您键入时,您的 PC 有 99.9995% 的时间处于空闲状态;因此它有大量的 CPU 能力用于后台任务。大多数人没有注意到这一点,因为病毒扫描程序通常会消耗 5-20% 的性能。但是键入或单击按钮几乎不会在 CPU 负载中注册。
OTOH,如果您在 UI 线程中运行较长的任务,则 UI 会锁定,直到任务完成。因此,从用户的角度来看,UI 将被阻塞,而对于串行端口,世界将是正常的。总体而言,这会更快,但会感觉迟缓。
由于同步或锁定,多线程通常比在单个线程中完成所有事情要慢。但是单个线程无法扩展。最终,你碰上了一堵砖墙(性能方面),没有任何技巧可以让单线程执行得更快。