Qt线程池QThreadPool用法
本文主要讲解QThreadPool相关函数,并通过demo程序演示它的用法
工具/原料
qt
visual studio
QRunnable类
1、QThreadPool启动的线程,需要从QRunnable类继承。需要实现QRunnable类的run虚函数
2、类CMyRunnale的run函数,实现了一个隔一秒钟打印一次的方法

2、结果:任务列表中有三个,但是总线程数是二,所以先运行两个线程,等到线程池有空闲线程时,才从任务列表中取新任务来运行

4、结果:任务列表中有三个任务,共有两个线程来执行。当前两个任务完成后,还剩一个任务由其中一个线程来执行,另外一个线程就处于空闲状态。等到空闲2秒后,该空闲线程就会退出

6、结果:初始一个线程执行任务,在调用releaseThread后,有两个线程同时执行任务

疑问
1、在CMyRunnale类中,设置了setAutoDelete(false)。在它的析构函数中,增加打印信息。线程池调用clear函数时,并没有看到CMyRunnale析构函数的打印信息。不知道是否释放或什么时候释放。
2、void releaseThread() 和void reserveThread() 函数具体怎么用,什么时候用还没有弄清楚