当前位置: 首页 > news >正文

泰安网站建设收费标准中国建设银行网站E路护航官网

泰安网站建设收费标准,中国建设银行网站E路护航官网,织梦网站图片不显示,计算机软件包含网站开发目录 QThreadPool类 QRunnable类 应用场景示例 QThreadPool类 主要属性: 1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。 2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出&am…

目录

QThreadPool类

QRunnable类

 应用场景示例


QThreadPool类

主要属性:

1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。

2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出,此类线程将根据需要重新启动。默认的expiryTimeout为30000毫秒 (30 秒)。如果expiryTimeout为负,则新创建的线程将不会过期, 在线程池被销毁之前, 它们将不会退出。通过expiryTimeout()调用,通setExpiryTimeout(int expiryTimeout)设置 。 

3、maxThreadCount : int 表示线程池使用的最大线程数。
    通过maxThreadCount() 调用,通过setMaxThreadCount(int maxThreadCount) 设置
   注意:即使maxThreadCount限制为零或为负数, 线程池也至少有1个线程。

 

主要成员函数

QThreadPool *QThreadPool::globalInstance()

//返回Qt应用程序全局线程池实例。

void reserveThread()

//预约一个线程,这个函数总是会增加活动线程的数量。这意味着通过使用这个函数,activeThreadCount()可以返回一个大于maxThreadCount()的值。

void releaseThread()

//释放以前通过调用reserveThread()预约的线程。
如果不先预约一个线程,调用这个函数会临时增加maxThreadCount()。当线程进入休眠等待时,能够允许其他线程继续。
要记得在完成等待时调用reserveThread(),以便线程池可以正确控制activeThreadCount()。

void QThreadPool :: start(QRunnable * runnable,int priority = 0)

//在任务数量小于maxThreadCount时,为每个runnable任务预约一个线程。超过maxThreadCount时,将任务放入运行队列中。priority 参数用来设置线程运行优先级。

bool tryStart(QRunnable *runnable)

//此方法尝试预约一个线程来运行runnable。
如果在调用的时候没有线程可用,那么这个函数什么都不做,并返回false。否则,将使用一个可用线程立即运行runnable,并返回此函数true。

void clear()

//用于删除在任务队列中,还没有启动的任务。

bool tryTake(QRunnable *runnable)

//如果runnable任务还没开始运行,那么从队列中删除此runable任务,此时函数返回true;如果runnable任务已经运行,返回false。
只用来删除runnable->autoDelete() == false的runnable任务,否则可能会删错任务.

bool waitForDone(int msecs = -1)

//等待msecs毫秒, 以便所有线程退出并从线程池中移除所有线程。如果删除了所有线程, 则返回true ,否则, 它将返回false。默认等待时间为-1,即等待最后一个线程退出。

QRunnable类

QRunnable类是所有runable对象的基类。
QRunnable类是一个接口, 用于表示需要执行的任务或代码段, 具体任务在run() 函数内部实现。
可以使用QThreadPool在各个独立的线程中执行代码。如果autoDelete() 返回true (默认值), QThreadPool将自动删除QRunnable 。使用setAutoDelete() 可更改是否自动删除。

主要成员函数

bool autoDelete() const

获取自动删除是否启用,启用返回true,未启用返回false。

virtual void run() = 0

纯虚函数,在QRunnable子类中实现详细任务处理逻辑。

void setAutoDelete(bool autoDelete)

如果autoDelete为 true, 则启用自动删除。否则自动删除将被禁用。
如果启用了自动删除, QThreadPool将在调用 run () 函数返回后自动删除此runable对象。否则, runable对象所有权不属于线程池,由开发人员管理。
请注意, 必须先设置此标志,(默认构造函数已经将其设置为true),然后才能调用

QThreadPool:: start()。在QThreadPool:: start() 之后调用此函数将导致不可预测后果。
调用此函数将导致不可预测后果。

 应用场景示例

#ifndef PRINTTASK_H
#define PRINTTASK_H#include <QObject>
#include <QRunnable>class PrintTask : public QObject, public QRunnable
{Q_OBJECTpublic:PrintTask();~PrintTask();
protected:void run();signals://注意!要使用信号,采用QObejct 和 QRunnable多继承,记得QObject要放在前面void mySignal();
};#endif // PRINTTASK_H
#include "printtask.h"
#include <QThread>
#include <iostream>
using std::cout;
using std::endl;PrintTask::PrintTask()
{
}PrintTask::~PrintTask()
{}//线程真正执行的内容
void PrintTask::run()
{cout << "PrintTask run 被调用,调用线程ID为:" << QThread::currentThread() << endl;
}
#include <QCoreApplication>
#include <QThreadPool>
#include "printtask.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//设置最大线程数为3的一个线程池QThreadPool pool;pool.setMaxThreadCount(3);for(int i = 0; i < 20; i++){pool.start(new PrintTask());}return a.exec();
}

http://www.yayakq.cn/news/515447/

相关文章:

  • 免费做淘客cms网站阿里云建站方案
  • 网站建设公司的佛山企业名录黄页
  • 网站维护会关闭吗网站定制的公司哪家好
  • 网站定制化服务企业网站的建站步骤
  • 用什么软件做网站最快微信微网站制作
  • 网页建站如何保存分享怎样添加网站图标
  • 网站建设推荐郑国华国家企业信用公示系统官方网站
  • 西宁集团网站建设自己制作的网站如何发布
  • 松江专业做网站公司wordpress插件漏洞扫描
  • 红河网站制作动漫设计与制作培训
  • 昆明商城网站建设教育培训网络平台
  • 网站建设课程实训报告管理员修改网站的参数会对网站的搜效果产生什么影响?
  • 手机网站的域名wordpress安装多个
  • 怎么查网站做404页面没建设局网站建设方案书
  • 做桂林网站的图片江门关键词优化排名
  • 商城网站建设源码wordpress安全锁
  • 站群系统程序wordpress源码类主题
  • 郑州天梯网站制作哈尔滨多语言网站建设
  • 国外域名。国内网站北京到安阳的火车
  • 在南昌市做网站到哪牡丹江百姓信息网
  • 贵阳做网站电商是做什么的职业
  • 做微商去哪些社交网站简述网络营销的方法
  • 网站建设方案大全南京开发
  • 用dedecms做的网站 脚本是什么网站整合建设是啥意思
  • 设计网站如何推广学校的网站的代码模板下载
  • 自己做的网站怎么给别人访问如何开科技软件
  • 网站流量分析宿州网站制作
  • 网站怎么识别PC 手机怎样做网站管理
  • 网站建设成本核算模板网站建设管理自查工作总结
  • 找个网站懂的网站阳江网站网站建设