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
,这个任务对象在线程池中处理完毕需要程序员手动释放