欢迎入群共同学习交流
时间记录:2024/1/16
一、线程与进程之间的关系介绍
(1)一个应用程序至少有一个进程,QProcess类开启新的进程
(2)一个进程至少会有一个线程QThread
二、线程类使用方法
(1)创建类继承QThread类或者QObject类
(2)重写父类的run方法,run方法中写入要执行的操作,只有run方法在线程中
(3)创建线程类对象,调用start方法开启线程,执行run方法中的操作
(4)terminate方法终止线程
(5)isFinished方法判断线程是否执行完成
(6)deleteLater方法删除线程对象,防止内存溢出
(7)sleep方法延时
三、线程安全问题
1.使用互斥锁保证线程安全QMutex
(1)创建QMutex对象,传入参数默认值为false创建普通互斥锁对象,true创建递归互斥锁对象,对于递归互斥量,一个线程可以锁定一个互斥量多次,并且只有在相同数量的unlock被调用后才会被解锁
(2)lock方法,尝试锁定互斥量,如果另一个线程已经锁定这个互斥量,那么这次的调用将会阻塞直到另一个线程解锁此互斥量
(3)unlock方法进行解锁互斥量
(4)tryLock 方法,尝试锁定互斥量,如果获取到锁则返回true,如果互斥量被另一个线程锁定返回false而不是阻塞等待