Qtにおけるマルチスレッド
Qt は、プラットフォームに依存しないスレッドクラス、スレッドセーフなイベント投稿方法、およびスレッド間のシグナル・スロット接続という形でスレッドサポートを提供しています。これにより、移植性の高いマルチスレッド Qt アプリケーションを容易に開発し、マルチプロセッサマシンの利点を活用することができます。 また、マルチスレッドプログラミングは、アプリケーションのユーザーインターフェースをフリーズさせることなく、時間のかかる操作を実行するための有用なパラダイムでもあります。
以前のバージョンの Qt では、スレッドサポートなしでライブラリをビルドするオプションが用意されていました。Qt 4.0 以降、スレッドは常に有効になっています。
トピック:
これらの記事では、読者がマルチスレッドアプリケーションに関する基礎知識を持っていることを前提としています。
スレッド関連のクラス
これらのクラスは、スレッド化されたアプリケーションに関連しています。
シーケンスから値を選択し、それらを結合する――これらすべてを並列に実行 | |
シーケンス内の値を変換し、それらを結合する(すべて並列処理) | |
別のスレッドでタスクを実行する簡単な方法 | |
別のスレッドでタスクを実行するための、設定可能な方法 | |
整数に対するプラットフォーム非依存の原子操作 | |
ポインタに対するプラットフォーム非依存の原子操作を提供するテンプレートクラス | |
非同期計算の結果を表す | |
QFutureの同期を簡素化する便利クラス | |
シグナルとスロットを使用して QFuture を監視できるようにする | |
スレッド間のシリアライゼーションへのアクセス | |
ミューテックスのロックおよびアンロックを簡略化する便利クラス | |
QFutureからアクセスされる計算結果を格納する方法 | |
読み取りアクセス用の読み書きロックのロックおよびロック解除を簡略化する便利クラス | |
読み書きロックのロックとアンロック | |
スレッド間のアクセスシリアライゼーション | |
実行可能なすべてのオブジェクトの基底クラス | |
汎用カウンティングセマフォ | |
QSemaphore::release() 呼び出しの例外安全な延期 | |
プラットフォームに依存しないスレッド管理方法 | |
QThreadのコレクションを管理する | |
スレッドごとのデータ格納 | |
スレッドを同期させるための条件変数 | |
書き込みアクセス用の読み書きロックのロックおよびロック解除を簡略化する便利クラス | |
低レベルのスレッドプリミティブを使用せずにマルチスレッドプログラムを記述することを可能にする高レベルAPI | |
タスクのパラメータを調整するために使用されます | |
QtFuture::WhenAnyResult は、QtFuture::whenAny() の結果を表すために使用されます | |
注:Qtのスレッド関連クラスは 、Win32やpthreadsなどのネイティブスレッドAPIを用いて実装されています。したがって、これらは同じネイティブAPIを使用するスレッドで利用可能です。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.