Qtで複数のスレッドを起動するにはどうすればいいですか?

QtではQThreadクラスでマルチスレッド処理を行えます。以下に簡単なサンプルコードを示します。

#include <QThread>
#include <QDebug>
class WorkerThread : public QThread {
public:
void run() override {
qDebug() << "Worker thread started";
// 在这里执行线程的任务逻辑
// ...
qDebug() << "Worker thread finished";
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建两个WorkerThread线程对象
WorkerThread thread1;
WorkerThread thread2;
// 开始执行线程
thread1.start();
thread2.start();
// 等待线程执行完毕
thread1.wait();
thread2.wait();
return a.exec();
}

この例では、WorkerThreadというQThreadを継承したクラスを定義し、run()関数をオーバーライドしています。run()関数内にスレッドのタスクロジックを記述することができます。次に、main関数内でWorkerThreadオブジェクトを2つ作成し、start()関数でスレッドを開始します。最後に、wait()関数でスレッドの実行が完了するまで待機します。

なお、Qtにはこれら以外にもQtConcurrentクラスによる並行プログラミングの実現やシグナルとスロットを利用した別スレッドとの通信など、より高度なマルチスレッド機能も備わっている。このサンプルはあくまでシンプルなマルチスレッドの例であり、実際の使用にあたっては用途に応じたスレッド起動方法を選択することが可能だ。

bannerAds