//Qt线程池是一种用于管理线程的工具,可以在多线程应用程序中提高性能和效率。
//以下是Qt线程池的常用方法和一个简单的例子:
//常用方法:
//1. "QThreadPool::globalInstance()":获取全局线程池实例。
//2. "QThreadPool::setMaxThreadCount(int)":设置线程池中线程的最大数量。
//3. "QThreadPool::start(QRunnable*)":将一个任务添加到线程池中执行。
//4. "QThreadPool::waitForDone()":等待线程池中所有任务执行完毕。
//例子:
//cpp
#include <QCoreApplication>
#include <QRunnable>
#include <QDebug>
#include <QThreadPool>
class MyTask : public QRunnable
{
public:
MyTask(int id) : m_id(id) {}
void run() override
{
qDebug() << "Task" << m_id << "is running in thread" << QThread::currentThreadId();
}
private:
int m_id;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QThreadPool::globalInstance()->setMaxThreadCount(4);
for (int i = 0; i < 10; ++i)
{
MyTask *task = new MyTask(i);
QThreadPool::globalInstance()->start(task);
}
QThreadPool::globalInstance()->waitForDone();
return a.exec();
}
//
//这个例子创建了一个"MyTask"类,继承自"QRunnable",并实现了"run()"方法。
//在"main()"函数中,设置了线程池的最大线程数为4,然后创建了10个"MyTask"对象,
//并将它们添加到线程池中执行。
//最后,调用"waitForDone()"方法等待所有任务执行完毕。