• QtConcurrent::run不运行问题


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

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

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

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

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

    解决方案:

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

    QThreadPool::globalInstance()->setMaxThreadCount(100);    // 设置最大线程个数
  • 相关阅读:
    回归测试
    系统测试
    单元测试
    软件测试规律之木桶原理
    集成测试
    软件测试度量
    测试用例设计方法之错误推测法
    测试用例设计方法之因果图方法
    有趣的算法:1元=1分
    【转】 arcServer 一些 FAQ
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/16505543.html
Copyright © 2020-2023  润新知