自学内容网 自学内容网

Qt-系统QThread多线程介绍使用(62)

目录

描述

相关函数

使用

准备工作

重写run 

发送信号

创建一个线程

启动线程

计时器运行流程

多线程运用场景


描述

qt多线程和Linux多线程类似

Linux有自己的一套多线程 API,Qt 也有着自己封装的多线程 API 

QT多线程参考了JAVA中的设计方式

QThread创建线程要重新run函数

这种做法在 C++ 中并不常见

 

相关函数

run()线程的⼊⼝函数..
start()通过调⽤ run() 开始执⾏线程。操作系统将根据优先级参数调度线程。如果线程已
经在运⾏,这个函数什么也不做。
currentThread()返回⼀个指向管理当前执⾏线程的 QThread的指针。
isRunning()如果线程正在运⾏则返回true;否则返回false。
sleep() / msleep() /
usleep()
使线程休眠,单位为秒 / 毫秒 / 微秒
terminate()终⽌线程的执⾏。线程可以⽴即终⽌,也可以不⽴即终⽌,这取决于操作系统的调
度策略。在terminate() 之后使⽤ QThread::wait() 来确保。
finished()当线程结束时会发出该信号,可以通过该信号来实现线程的清理⼯作。

 

使用

创建一个定时器

但是由于 Qt 的对于修改界面的保护机制,我们只能在主线程中进行修改

 

准备工作

ui中拉取一个定时器

 

重写run 

创建一个类 

 

发送信号

 

创建一个线程

启动线程

 

计时器运行流程

多线程运用场景

多线程是为了充分利用 CPU 的计算资源,特别是多核CPU的,现在的电脑基本上是多线程的

用户体验和速度的取舍

在大部分情况下,客户端的用户体验要大于速度 

通常多线程都是用于等待 IO 的操作,这类的事件通常很消耗时间

因此对于qt中的多线程运用场景一般还是中处理 密集IO 操作上


原文地址:https://blog.csdn.net/weixin_67595436/article/details/142886707

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!