我的简单Python应用程序使用PyQt4作为其GUI并单击QPushButton
会导致应用程序通过serial
发送消息。 GUI元素也经常更新。
问题:我不知道如何实现多线程。不会有多线程进程导致应用程序在发送串行通信时响应性降低且不太一致,尤其是在发送串行消息的同时更新GUI元素时?
答案 0 :(得分:1)
这取决于。键入时,您的电脑闲置99.9995%;所以它有很多CPU能力用于后台任务。大多数人都没有注意到这一点,因为病毒扫描程序通常会占用5-20%的性能。但是输入或单击按钮几乎不会在CPU负载中注册。
OTOH,如果你在UI线程中运行一个长任务,那么UI会锁定,直到任务完成。因此,从用户的角度来看,UI将被阻塞,而对于串行端口,世界将是正常的。总的来说,这会更快,但感觉迟缓。
由于同步或锁定,多线程通常比在单个线程中执行所有操作要慢。但是单个线程无法扩展。最终,你碰到了一堵砖墙(性能明智),没有任何技巧可以让单个线程更快地执行。