Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt4是否需要多线程并写入串行数据_Python_Multithreading_Python 2.7_Pyqt_Pyqt4 - Fatal编程技术网

Python PyQt4是否需要多线程并写入串行数据

Python PyQt4是否需要多线程并写入串行数据,python,multithreading,python-2.7,pyqt,pyqt4,Python,Multithreading,Python 2.7,Pyqt,Pyqt4,我的简单Python应用程序使用PyQt4作为其GUI,单击QPushButton可使应用程序通过serial发送消息。GUI元素也经常更新 问题:我不知道如何实现多线程。没有多线程进程是否会导致应用程序在发送串行通信时响应性和一致性降低,尤其是在发送串行消息的同时更新GUI元素时。当你打字时,你的电脑99.9995%的时间处于空闲状态;因此,它在后台任务上花费了大量的CPU资源。大多数人没有注意到这一点,因为病毒扫描程序通常会消耗5-20%的性能。但是,键入或单击按钮几乎不会记录CPU负载 O

我的简单Python应用程序使用PyQt4作为其GUI,单击
QPushButton
可使应用程序通过
serial
发送消息。GUI元素也经常更新


问题:我不知道如何实现多线程。没有多线程进程是否会导致应用程序在发送串行通信时响应性和一致性降低,尤其是在发送串行消息的同时更新GUI元素时。当你打字时,你的电脑99.9995%的时间处于空闲状态;因此,它在后台任务上花费了大量的CPU资源。大多数人没有注意到这一点,因为病毒扫描程序通常会消耗5-20%的性能。但是,键入或单击按钮几乎不会记录CPU负载

OTOH,如果您在UI线程中运行一个长任务,那么UI将锁定,直到任务完成。因此,从用户的角度来看,UI将被阻塞,而对于串行端口,世界将是正常的。总的来说,这会更快,但会感觉迟钝


由于同步或锁定的原因,多线程通常比在单个线程中执行所有操作都慢。但是一条线不能伸缩。最终,您遇到了困难(从性能角度来看),没有任何技巧可以使单个线程执行得更快。

这取决于具体情况。当你打字时,你的电脑99.9995%的时间处于空闲状态;因此,它在后台任务上花费了大量的CPU资源。大多数人没有注意到这一点,因为病毒扫描程序通常会消耗5-20%的性能。但是,键入或单击按钮几乎不会记录CPU负载

OTOH,如果您在UI线程中运行一个长任务,那么UI将锁定,直到任务完成。因此,从用户的角度来看,UI将被阻塞,而对于串行端口,世界将是正常的。总的来说,这会更快,但会感觉迟钝

由于同步或锁定的原因,多线程通常比在单个线程中执行所有操作都慢。但是一条线不能伸缩。最终,您遇到了困难(性能方面),没有任何技巧可以使单个线程执行得更快