当前位置: 技术问答>linux和unix
QT的多线程问题
来源: 互联网 发布时间:2016-10-31
本文导语: 移植了Qt4在ARM9上,Linux内核版本2.6.8 程序中用到了两个线程。 一个线程是主线程,定时重新设置页面上的显示的QLabel当中的文字,间隔为500ms 一个线程是串口的通信线程,反复和另一台机器通信,一次通信周期,正...
移植了Qt4在ARM9上,Linux内核版本2.6.8
程序中用到了两个线程。
一个线程是主线程,定时重新设置页面上的显示的QLabel当中的文字,间隔为500ms
一个线程是串口的通信线程,反复和另一台机器通信,一次通信周期,正常为160ms左右
因为发现显示的文字(另一台机器倒数秒并传过来现在的数值)并不是按照5、4、3、2、1这样均匀变化的,而是有跳秒的现象。经常会5之后,停滞2s,然后显示2。
由于主线程的页面上还给了一个时间的显示(到秒),发现该时间显示是均匀变化的。
然后对通信线程监控发现,发现会随机的出现阻塞2s左右的现象。而阻塞的语句位置几乎都在同一个地方(一个简单的赋值语句,该线程内其他地方也有)。
如果将主线程定时重新设置的那个函数内部的所有内容全部注释掉,发现也会出现阻塞的现象。
而如果关闭掉主线程定时重新设置的定时器,则不会出现阻塞2s的现象。
是和Qt内部对空间的update()有关?还是别的什么问题?
盼高手给点意见,多谢多谢。
程序中用到了两个线程。
一个线程是主线程,定时重新设置页面上的显示的QLabel当中的文字,间隔为500ms
一个线程是串口的通信线程,反复和另一台机器通信,一次通信周期,正常为160ms左右
因为发现显示的文字(另一台机器倒数秒并传过来现在的数值)并不是按照5、4、3、2、1这样均匀变化的,而是有跳秒的现象。经常会5之后,停滞2s,然后显示2。
由于主线程的页面上还给了一个时间的显示(到秒),发现该时间显示是均匀变化的。
然后对通信线程监控发现,发现会随机的出现阻塞2s左右的现象。而阻塞的语句位置几乎都在同一个地方(一个简单的赋值语句,该线程内其他地方也有)。
如果将主线程定时重新设置的那个函数内部的所有内容全部注释掉,发现也会出现阻塞的现象。
而如果关闭掉主线程定时重新设置的定时器,则不会出现阻塞2s的现象。
是和Qt内部对空间的update()有关?还是别的什么问题?
盼高手给点意见,多谢多谢。
|
好乱啊,用的QTimer吗?
我用着好好的啊。
你贴代码来描述下吧。
我用着好好的啊。
你贴代码来描述下吧。