このセクションでは、いくつかの一般的な並列プログラミング・パターンと、インテル® スレッディング・ビルディング・ブロック (インテル® TBB) を使用してそれらのパターンを実装する方法を説明します。
各パターンの説明は、次の形式で行っています。
問題 – 解決する問題を説明します。
コンテキスト – 問題が発生するコンテキストを説明します。
影響 – パターンの使用による影響に関する考察です。
ソリューション – パターンの実装方法を説明します。
サンプル – 実装例を示します。
バリエーションとサンプルは状況に合わせて紹介します。コードサンプルは重要なポイントを強調するために用いられているものであり、完全なコードではありません。非 const メソッドの明示的な const オーバーロードは省略しています。
用語とサンプルの多くは、Eun-Gyu および Marc Snir の両氏によって作成された Web ページとカリフォルニア大学バークレー校の parallel patterns wiki の内容を参考にしています。「全般的な参考資料」セクションのリンクを参照してください。
コードを簡潔にするため、いくつかのコードサンプルでは C++11 ラムダ式を使用しています。ラムダ式を等価な C++98 コードで表現することは難しくありませんが、少し冗長になることがあります。