QT多线程-应对复杂数据处理、串口数据实时显示

el/2023/6/4 15:47:11

为何要使用多线程

任何收发两端速度不一致的通讯,都需要在它们之间使用一个足够大的FIFO缓冲区。
对任何FIFO缓冲区的使用,都需要仔细考虑接收端接收时超时无数据和发送端发送时FIFO缓冲区已满这两种情况下该如何做。
这些
经典代码还包括以下必须考虑的因素:
◆跨Windows和Linux平台
◆多线程锁
◆多线程日志
◆日志文件占用的磁盘空间的可控性。
◆日志中的时间包括毫秒
◆传输的数据对应的每个字节到底的英文几
◆如何退出多线程程序

什么情况下不用线程

启动其它线程很容易,但很难保证所有共享的数据保持一致。问题通常很难找到,因为它们可能在某个时候仅显示一次或仅在某种硬件配置下出现。在创建线程解决某些问题之前,应予以考虑可能的替代方案。

线程基础

线程与并行处理任务息息相关,就像进程一样。当前CPU设计的趋势是拥有多核。一个典型的单线程应用程序只能利用一个核。但是,一个多线程程序可被分配给多个核,使得程序以一种完全并行的方式运行。这样,将一个任务分配给多个线程使得程序在多核CPU计算机上的运行速度比传统的单核CPU计算机上的运行速度快很多。

每个程序启动后就会拥有一个线程。该线程称为“主线程”(在Qt应用程序中也叫“GUI线程”)。Qt GUI必须运行在此线程上。所有的部件和几个相关的类,例如:QPixmap,不能工作于次线程中。次线程通常称为“工作者线程”,因为它主要处理从主线程中卸下的一些工作。

QThread继承自QObject

每个线程都有它自己的事件循环。初始线程通过QCoreApplication::exec()来

http://www.ngui.cc/el/3419054.html

相关文章

QT-Qcustomplot-简单配置和基础坐标轴功能实现-(实时曲线、坐标轴可拖动、放大、缩小)

已经放弃Chart,太麻烦,难顶,效果也不太好,代码也繁琐 配置 1、官网下载:http://www.qcustomplot.com/ 下载压缩文件即可,然后将其中的qcustomplot.cpp和qcustomplot.h文件拿出添加到自己的项目中就行咯,pro文件记得添加代码或自动添加 2、安装帮助文档:F1即可查看,与…

python-[简单训练1]-对于输入的单词用','分开,对再输入的字母进行搜索,得到该字母出现频率最高的单词

刚开始学python,应用一些简单的问题熟悉下各个基本内容 问题描述 输入多个单词,每个单词之间用英文逗号隔开, 再输入要查询的字母,得到该字母出现频率最高的单词 代码内容: count = [] print(Please input your something : ) message = input() i = 0 str = #将各个单词…

python-[简单训练2]-搜索当前文件夹所有的.txt文件,对用户输入的正则表达式进行搜索并进行显示

问题描述 打开文件夹中的所有.txt文件, 查找匹配用户提供的正则表达式的所有行, 并将结果输出在屏幕上 代码如下: import os import re d [] for filename in os.listdir(os.getcwd()):if filename.endswith(.txt):a os.path.join(os.getc…

python-[简单训练3]-搜索当前文件夹属于一类的所有文件,检查序号是否连续,不连续则修改(消除缺失的编号)

问题描述 在一个文件夹中,找到所有带指定前缀的文件,例如:spam001.txt 定位缺失的编号,让程序对后面所有的文件改名,消除缺失的编号 代码如下: import os, re, shutil cuurentdir os.getcwd() textname …

python-[openpyxl]-代码更改后

当作收藏 openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只…

QT-定时器QTimer 简单计时

定时器经常会用到&#xff0c;其实定时器是非常简单的&#xff0c;代码只有几个。一、创建定时器 一定要包含头文件 #include <QTimer> QTimer *Timer;然后新建即可 Timer new QTimer对定时器结束的connect connect(Timer, SIGNAL(timeout()), this, SLOT());二、一些…

python-opencv-ValueError: setting an array element with a sequence

Error描述 C:\WORK\Python\python.exe C:/Users/雪山飞狐/Desktop/研究生资料/数字图像处理/shiyan1.py Traceback (most recent call last):File "C:/Users/雪山飞狐/Desktop/研究生资料/数字图像处理/shiyan1.py", line 23, in <module>img_4 downsampling…

python-opencv-matplotlib灰度图可视化处理

参考文章1、golgotha的ttps://www.jianshu.com/p/de9013f181d7 一、Demo 一、1.热度图 利用matplotlib可视化一张图片的灰度图。 纵横坐标为图片的像素点位置(x, y),此像素点的灰度值z(x, y)当作z轴上的取值。 首先利用plot_surface分析某张图片的灰度图 import matplotli…

python-AttributeError: module 'matplotlib' has no attribute 'contourf'

错误内容 Traceback (most recent call last):File "C:/Users/雪山飞狐/Desktop/学习总结/ML100天/Code/Day_4.py", line 30, in <module>plt.contourf(X1, X2, classifer.predict(np.array([X1

(LaTex)CTex使用详细教程与资料

一份其实很短的LaTex入门文档 &#xff08;LaTex)CTex的初次使用心得及入门教程 一、 为啥子要用LaTex &#xff08;1&#xff09;待编辑文档规模尺度相关&#xff1a; 学位论文&#xff0c;书籍的编辑用LaTex就比较方便 &#xff08;2&#xff09;编号的方便&#xff1a; …