QT线程问题
(一)QThread
(二)QMutex和QMutexLocker
- 通俗理解
- QMutex是一把锁,如果想阻塞运行一个代码块,需要进行上锁然后解锁,这样操作比较麻烦,所以使用QMutexLocker自动解锁,可以加上{}对众多代码中的某一部分进行精确加锁
- 如果在QMutexLocker析构时,mutex仍处于加锁状态,则将会在析构函数中进行解锁处理。
QMutex mutex;
QMutexLocker locker(&mutex);
加{}
while (1)
{
sleep(1);
++count;
emit progress(((float)count/runCount)*100);
emit message(QString("Run times:%1").arg(count));
doSomeThings();
if(count==runCount)
{
break;
}
{
QMutexLocker locker(&mutex);
if(!is_CanRun)
{
return;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步