.NET での並列プログラミング

多くのパーソナル コンピューターとワークステーションには、複数スレッドの同時実行を可能にする複数の CPU コアがあります。 ハードウェアを活用するには、コードを並列化して複数のプロセッサに負荷を分散します。

以前は、並列化には低水準のスレッドおよびロックの操作が必要でした。 Visual Studio と .NET では、ランタイム、クラス ライブラリの型、および診断ツールを提供することで、並列プログラミングのサポートを強化しています。 .NET Framework 4 に導入されたこれらの機能によって、並行開発が簡略化されます。 スレッドやスレッド プールを直接操作することなく、効率的で詳細な、拡張性のある並列コードを自然な表現方法で記述できるようになります。

.NET の並列プログラミング アーキテクチャの高度な概要を次の図に示します。

.NET 並列プログラミング アーキテクチャ

テクノロジ 説明
タスク並列ライブラリ (TPL) 並列バージョンの System.Threading.Tasks.Parallel ループおよび For ループを含む ForEach クラスに関するドキュメントと、非同期操作の推奨される表現方法を表す System.Threading.Tasks.Task クラスに関するドキュメントが用意されています。
Parallel LINQ (PLINQ) さまざまなシナリオでパフォーマンスを大幅に向上させる、LINQ to Objects の並列実装です。
並列プログラミングのデータ構造 スレッド セーフなコレクション クラス、軽量な同期型、および限定的な初期化の種類に関するドキュメントへのリンクを示します。
並列診断ツール タスクと並列スタック向けの Visual Studio デバッガー ウィンドウ、およびコンカレンシー ビジュアライザーに関するドキュメントへのリンクを示します。
PLINQ および TPL 用のカスタム パーティショナー パーティションのしくみと、既定のパーティションの設定方法または新しいパーティションの作成方法について説明します。
タスク スケジューラ スケジューラのしくみと既定のスケジューラの構成方法について説明します。
PLINQ および TPL のラムダ式 C# および Visual Basic のラムダ式について簡単に説明し、PLINQ およびタスク並列ライブラリでラムダ式を使用する方法を示します。
関連項目 .NET での並列プログラミングに関する追加の情報とサンプル リソースへのリンクを示します。

関連項目