项目场景:
使用QtConcurrent::run执行部分耗时数据处理
问题描述
执行QtConcurrent::run时,在自己电脑上运行怎么测试线程运行都正常,但是客户电脑就是跑不起来,通过返回值将线程状态打印出来,线程已经启动
原因分析:
后来上网查了一下,QTConcurrent使用了QThreadPool线程池创建的线程,而此线程池中的最大线程数默认值为QThread::idealThreadCount()与cpu核心数目一致;
然后我调用一下函数,将线程次个数打印出来,我的天,才2个,难怪不行
1 QThreadPool::globalInstance()->maxThreadCount(); // 获取线程池最大线程个数
2 QThreadPool::globalInstance()->activeThreadCount(); // 当前活动的线程个数
解决方案:
调用一下函数,设置线程池最大线程数即可
QThreadPool::globalInstance()->setMaxThreadCount(100); // 设置最大线程个数
分类:
Qt
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2021-07-22 OpenCV 几何图像变换-cv::getAffineTransform(仿射变换)
2021-07-22 OpenCV 特征点识别与findHomography算法过滤