qt线程池创建
时间: 2023-06-30 07:26:35 浏览: 103
qt 线程池服务器
3星 · 编辑精心推荐
Qt线程池的创建可以通过QThreadPool类实现。以下是一个简单的例子:
```c++
#include <QCoreApplication>
#include <QThreadPool>
#include <QDebug>
class Worker : public QRunnable
{
public:
void run() override
{
qDebug() << "Thread ID: " << QThread::currentThreadId();
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QThreadPool *threadPool = QThreadPool::globalInstance();
threadPool->setMaxThreadCount(4);
for(int i=0; i<10; i++)
{
Worker *worker = new Worker();
threadPool->start(worker);
}
return a.exec();
}
```
这个例子创建了一个最大线程数为4的线程池,并且往线程池中加入了10个Worker对象,每个对象在运行时会输出线程ID。通过调用QThreadPool的start()函数启动Worker对象的运行,线程池会自动分配线程执行任务。注意,QRunnable是一个接口类,需要通过继承并实现其run()函数来实现具体的任务。
阅读全文