- 1
- 0
- 约3.96千字
- 约 7页
- 2025-05-13 发布于四川
- 举报
第
QT线程池的使用(QThreadPool类和QRunnable类)
目录QThreadPool类主要属性主要成员函数QRunnable类主要成员函数程序实例
QThreadPool类
用来管理QThreads。此类中的所有函数都是线程安全的.
主要属性
1、activeThreadCount:此属性表示线程池中的活动线程数,通过activeThreadCount()调用。
2、expiryTimeout:线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出,此类线程将根据需要重新启动。默认的expiryTimeout为30000毫秒(30秒)。如果expiryTimeout为负,则新创建的线程将不会过期,在线程池被销毁之前,它们将不会退出。通过expiryTimeout()调用,通setExpiryTimeout(intexpiryTimeout)设置。
3、maxThreadCount:int表示线程池使用的最大线程数。
通过maxThreadCount()调用,通过setMaxThreadCount(intmaxThreadCount)设置
注意:即使maxThreadCount限制为零或为负数,线程池也至少有1个线程。
主要成员函数
QThreadPool*QThreadPool::globalInstance()
返回Qt应用程序全局线程池实例。
voidreserveThread()
预约一个线程,这个函数总是会增加活动线程的数量。这意味着通过使用这个函数,activeThreadCount()可以返回一个大于maxThreadCount()的值。
voidreleaseThread()
释放以前通过调用reserveThread()预约的线程。
如果不先预约一个线程,调用这个函数会临时增加maxThreadCount()。当线程进入休眠等待时,能够允许其他线程继续。
要记得在完成等待时调用reserveThread(),以便线程池可以正确控制activeThreadCount()。
voidQThreadPool::start(QRunnable*runnable,intpriority=0)
在任务数量小于maxThreadCount时,为每个runnable任务预约一个线程。超过maxThreadCount时,将任务放入运行队列中。priority参数用来设置线程运行优先级。
booltryStart(QRunnable*runnable)
此方法尝试预约一个线程来运行runnable。
如果在调用的时候没有线程可用,那么这个函数什么都不做,并返回false。否则,将使用一个可用线程立即运行runnable,并返回此函数true。
voidclear()
用于删除在任务队列中,还没有启动的任务。
booltryTake(QRunnable*runnable)
如果runnable任务还没开始运行,那么从队列中删除此runable任务,此时函数返回true;如果runnable任务已经运行,返回false。
只用来删除runnable-autoDelete()==false的runnable任务,否则可能会删错任务.
boolwaitForDone(intmsecs=-1)
等待msecs毫秒,以便所有线程退出并从线程池中移除所有线程。如果删除了所有线程,则返回true,否则,它将返回false。默认等待时间为-1,即等待最后一个线程退出。
QRunnable类
QRunnable类是所有runable对象的基类。
QRunnable类是一个接口,用于表示需要执行的任务或代码段,具体任务在run()函数内部实现。
可以使用QThreadPool在各个独立的线程中执行代码。如果autoDelete()返回true(默认值),QThreadPool将自动删除QRunnable。使用setAutoDelete()可更改是否自动删除。
主要成员函数
boolautoDelete()const
获取自动删除是否启用,启用返回true,未启用返回false。
virtualvoidrun()=0
纯虚函数,在QRunnable子类中实现详细任务处理逻辑。
voidsetAutoDelete(bool
您可能关注的文档
最近下载
- 新疆小额再贷款股份有限公司招聘笔试题库2024.pdf
- 2026年湖南铁道职业技术学院单招职业技能测试题库推荐.docx VIP
- 2025年河南省公务员省考《行测》联考-部分真题(含答案).pdf VIP
- 园林苗圃学苗木的播种繁殖.ppt VIP
- 校服采购服务方案投标文件(技术方案).doc
- 人教版高中英语选择性必修三单元 Unit 1 Art单元话题语法填空练习(含答案).pdf VIP
- 区烟草局下半年工作部署.docx VIP
- 2025年四川省考_选调公务员省考《行测》联考真题(含答案).docx VIP
- 低分子肝素临床应用中国专家共识(2026)解读PPT课件.pptx VIP
- 一致魔芋(839273)魔芋粉行业领军者,魔芋食品成为第二增长曲线.docx VIP
原创力文档

文档评论(0)