マルチスレッド処理の基礎(0) - はじめに

しばらくぶりの記事ですが…本日から、C#のマルチスレッド処理の基礎について何度かに分けて書いていきます。

はじめに

これから書いていく内容は、数年前に仕事上で教育のために作った資料をベースとしています。そのため、内容の多くは、.NET Framework 3.5が主流だった時代の設計・実装技術を解説するような形式になっています。4.0以降に追加されたクラスと深い関わりを持つものは、各記事の最後に補足として解説する予定です。

.NET Frameworkは、4.0以降、バージョンアップの度に並列処理をサポートするための機能が追加されています。(TPL、同時実行コレクション、Rx、async/await、そしてTPL Dataflowなど)

そのため、非同期処理や並列処理をプログラミングするハードルは数年前に比べかなり下がってきてはいますが、それでも、現状存在しているものは、あくまでも「正しい知識を持った開発者が、車輪の再発明をすることなく安全に素早く開発ができる」というような性質のものであり、「今まで全く非同期処理・並列処理に関する勉強をしたことの無い開発者が、体系的な勉強をしなくてもそれらの処理を扱えるようになる」というようなものではありません。

あるいは、今後のさらなる進化により、コーディングをする上での前提となる知識は減っていく可能性はありますが、処理/動作について高い精度が求められるようなソフトウェアの設計を行う上では、これから解説するような基礎的なことを学ぶ意義が無くなることはないだろう、と私は考えています。

対象読者

.NET Frameworkを使用したソフトウェアの開発者。
特に、非同期処理や並列処理に関する設計・プログラミングの基礎を勉強したい方。

検証環境

Visual Studio 2012 / .NET Framework 4.5 / Windows 8 Professional

制限事項

これから解説する内容は、単独の独立したアプリケーション(デスクトップアプリ、サービス等)を想定して記述しています。
アプリケーションの権限に制約があるような環境では、一部の機能を使用できない場合があります。