スレッド・ローカル・ストレージ

インテル® スレッディング・ビルディング・ブロック (インテル® TBB) は、スレッド・ローカル・ストレージ用に 2 つのテンプレート・クラスを提供します。どちらのテンプレート・クラスも、スレッドごとにスレッドローカル要素を提供し、オンデマンドに要素を遅れて作成しますが、使用モデルが異なります。

combinable は、後で 1 つの結果になる、スレッドごとのサブ計算を保持するスレッド・ローカル・ストレージを提供します。これは PPL 互換です。

enumerable_thread_specific は、スレッドごとに 1 つの要素を含む STL コンテナーのように動作するスレッド・ローカル・ストレージを提供します。コンテナーは、通常の STL 反復の表現方法を使用して要素を反復します。

このセクションでは、flatten2d テンプレート・クラスについても説明します。このテンプレート・クラスは、enumerable_thread_specific がスレッドにわたってコンテナー・パーティショナーを表す一般的な表現方法を支援します。