QT 多线程和线程同步

Feronia ·
更新时间:2024-09-20
· 640 次阅读

QThread线程类,
公共函数接口:
Bool isFinished() 线程是否结束
Bool isRunning() 线程是否正在运行
Proority priority() 返回线程优先级
Void setPriority(Priority priority) 设置线程优先级
Bool wait(unsigned long time) 阻塞线程time毫秒
Void exit(int returnCode = 0) 退出线程,返回0表示退出成功
信号接口:
Void finished() 线程即将结束时发送该信号
Void started() 线程开始执行,run()函数执行之前发送
保护函数:
Virtual void run() Start()调用run()开始线程任务的执行,run()实现线程功能
Int exec() 由run()调用,进入线程循环

多线程工程设计思路:

首先建立工程,在工程中添加QTread类,并在QTread类中重载线程开始、结束、暂停以及run()函数,在主线程定义线程类对象即可。

多线程同步问题:
互斥锁:QMutex,
::Run()
{
While(1){
Mutex.lock();
任务代码。。。
Mutex.unlock();
}
}
::returnValue()
{
If( Mutex.tryLock() )
{
……
Mutex.unlck();
}
}
信号量:QSemaphore(待续。。)


作者:七律看唱本



线程同步 多线程 线程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号