Qt 中的线程池

QThreadPool

获取线程中最大线程个数

maxThreadCount : int

获取全局线程池对象

[static] QThreadPool *QThreadPool::globalInstance()

开始

void QThreadPool::start(QRunnable *runnable, int priority = 0)
  • QRunnable:放入线程池里的类型
  • priority:优先级,有默认

设置最大线程数

void setMaxThreadCount(int maxThreadCount)

QRunnable

在Qt使用线程池需要先创建任务,添加到线程池中每一个任务都需要是一个QRunnable类型,因此在程序中需要创建子类继承QRunnable这个类,然后重写run方法,在这个函数中编写要在线程池中执行的任务,并将这个子类对象传递给线程池,这样任务就可以被线程池中某个工作中的线程处理掉了。

QRunnable类常用函数不多,主要是设置任务对象给线程池后,是否需要自动析构

在子类中必须重写的函数

[pure virtual] void QRunnable::run()
  • 里面是任务的处理流程

释放

void QRunnable::setAutoDelete(bool autoDelete)
  • 参数设置为true,这个任务对象在线程池中处理完毕自动释放
  • 参数设置为false,这个任务对象在线程池中处理完毕需要程序员手动释放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值