一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

项目场景:
使用QtConcurrent::run执行部分耗时数据处理

问题描述
执行QtConcurrent::run时,在自己电脑上运行怎么测试线程运行都正常,但是客户电脑就是跑不起来,通过返回值将线程状态打印出来,线程已经启动

原因分析:
后来上网查了一下,QTConcurrent使用了QThreadPool线程池创建的线程,而此线程池中的最大线程数默认值为QThread::idealThreadCount()与cpu核心数目一致;

然后我调用一下函数,将线程次个数打印出来,我的天,才2个,难怪不行

1 QThreadPool::globalInstance()->maxThreadCount();        // 获取线程池最大线程个数
2 QThreadPool::globalInstance()->activeThreadCount();     // 当前活动的线程个数

解决方案:

调用一下函数,设置线程池最大线程数即可

QThreadPool::globalInstance()->setMaxThreadCount(100);    // 设置最大线程个数

 

posted on   一杯清酒邀明月  阅读(299)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!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算法过滤
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示