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

目录

描述

相关函数

使用

准备工作

重写run?

发送信号

创建一个线程

启动线程

计时器运行流程

多线程运用场景


描述

qt多线程和Linux多线程类似

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

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

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

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

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

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

QThread创建线程要重新run函数

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

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

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

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

相关函数

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

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

?

使用

创建一个定时器

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

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

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

?

准备工作

ui中拉取一个定时器

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

?

重写run?

创建一个类?

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

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

发送信号

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

?

创建一个线程

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

启动线程

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

?

计时器运行流程

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

多线程运用场景

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

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

用户体验和速度的取舍

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

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

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

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

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

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

上一篇:Hive数仓操作(十六)
下一篇:vivox9splusl手机(vivox9splusl更新系统好不好)