Qt5.12实战之多线程编程概念
1.为什么要使用多线程?
a. 基于线程,同时处理多个任务,软件响应更灵敏
b.充分利用CPU的多核心功能增加应用运行效率
c.多线程在同一进程间使用共享通信更加高效
d.多个线程之间进行切换比多个进程之间进行切换,线程开销更少.
2.操作系统与进程关系
a. MS-DOS系统 属于单进程,单线程系统
b. UNIX和Linux系统 属于 多进程,单线程系统
c. Window NT系统到Win11 属于 多进程,多线程系统(支持多任务同步进行并切换)
d. VxWorks属于 单进程 多线程系统
3.进程与线程有什么关系?
a.进程由系统分配与调度,线程由进程创建与销毁,
b.进程的内存地址空间是独立的, 同一进程内创建的所有线程共享进程的地址空间
c. 同一进程内的线程切换比进程切换速度更快
4.什么情况下用线程?
a. 耗时的任务
b.实时应用
c.独立的任务模块
5.线程有哪些状态?
a.就绪
1.已创建,但未运行的线程
2.从阻塞状态恢复的线程
b.运行
正在处理器中运行的线程,当前正在使用CPU的线程
c.阻塞
等待运行条件的线程(IO操作/互斥锁/条件变量)
d.终止
线程执行已执行完成,或者未完成被其他线程发信号取消,或者被非法终止的线程
(注: 已终止的线程所占用的资源暂未回收.且可重新激活)
6.什么是线程函数?
创建线程时传入的函数,线程启动后会执行该函数,
可以是用户自定义函数,也可是系统函数.