C#によるマルチコアのための非同期 / 並列処理プログラミング

シーシャープ ニ ヨル マルチコア ノ タメノ ヒドウキ ヘイレツ ショリ プログ

最新開発テクニックの基礎 & 実践知識

C#によるマルチコアのための非同期 / 並列処理プログラミングの表紙
プログラミング
著者:
山本康彦(ヤマモト, ヤスヒコ)
出版社:
技術評論社
出版日:
2013年08月
ISBN:
9784774158280
在庫:
在庫あり
4(2 件 / 楽天ブックス)

なぜ注目されているか

言及数
945位
総合2051位 言及 2 件

技書の森解説

『C#によるマルチコアのための非同期 / 並列処理プログラミング』 (山本康彦 著、技術評論社、2013 年 7 月刊) は、マルチコアの CPU の性能を引き出すための非同期処理と並列処理を、C# と .NET Framework の機能で解説する本です。版元は対象を「すでに実際の開発は経験しているが並列処理や非同期処理の経験はない C# プログラマー」と案内しています。版元の書籍ページの著者紹介 (2026 年 10 月時点) によれば、山本康彦は本田技術研究所で自動車の設計と研究に携わったあとソフトウェア開発業界に転じ、主に Windows 系の業務システムを手掛けてきた技術者で、.NET Framework と C# とは β 版だった 2001 年からの付き合いと紹介されています。

非同期と並列の違い、スレッドとタスクの考え方

非同期処理と並列処理は混同されやすい言葉です。非同期処理 は、時間のかかる処理の完了を待たずに呼び出し元を先へ進める書き方で、デスクトップアプリでは画面を描く UI スレッドを止めないために使われます。並列処理は、1 つの計算を分けて複数のコアで同時に実行し、全体の処理時間を縮める考え方です。論理的に同時に進めることと物理的に同時に実行することは、並行処理と並列処理の区別 として分けて扱われます。複数のスレッドが同じデータを書き換えると、実行の順序によって結果が変わる レースコンディション が起き、排他の仕組みが必要になります。スレッドの生成には手間がかかるため、作ったスレッドを使い回す スレッドプール と、処理の単位を表して完了後の続きや例外、キャンセルをまとめて扱うタスクが .NET の非同期の土台になっています。async と await は、このタスクの続きを、上から順に読める同期処理に近い形で書くための構文です。

全 4 部の構成、原理からラングトンのループの並列化まで

目次は Part 1 から Part 4 に分かれます。Part 1「マルチコアのための非同期/並列処理の原理」は、UI と UX の課題を解く非同期処理と並列処理、.NET Framework の支援、用語集から入り、コアの能力を使い切る「大喰らい」プログラムで非同期処理と並列処理を試し、テストとデバッグの方法までを扱います。Part 2「マルチコアを使いこなすための非同期/並列処理必須知識」は Chapter 1 から Chapter 12 で、プロセスと AppDomain とスレッドとタスクの関係、スレッドの開始と完了待ち、戻り値の取り出し、続けて別の処理を実行する方法、async/await、スレッド間の同調、Interlocked クラスや lock キーワード、Monitor、ReaderWriterLock、Mutex、Semaphore による共用、スレッドローカルストレージ、例外、進捗報告、キャンセル、Parallel クラスと PLINQ を順に取り上げます。Part 3「マルチコアのための C#/.NET の非同期/並列処理の方法」は、1 つの例題を .NET 1.x、2.0、3.5、4、Silverlight、4.5 の方式で書き分けます。Part 4「マルチコア非同期/並列処理実践プログラミング」は、セルオートマトン「ラングトンのループ」を実装し、ロジックと画面の非同期化、Parallel.For による並列化、ロジックの改良を経て、Chapter 6「まとめ」で閉じます。

.NET の版ごとの書き方と、2013 年刊の範囲

本書は、同じ処理を .NET の版ごとに書き分けています。Part 2 の多くの章は、Thread と ThreadPool、delegate、BackgroundWorker、Component クラスを継承した EAP、タスクという順に方式を並べ、各項に .NET 2.0 や .NET 4 といった版の印を付けています。Part 3 では APM、EAP、TAP、Reactive Extensions、WinMD の非同期処理を扱います。目次の上で扱う範囲は .NET 4.5 までで、それより後の版の項目はありません。版元の書籍ページ (2026 年 10 月時点) には、紙の本に加えて電子版の案内と、正誤表やダウンロードのためのサポートページが用意されています。

本書は、マルチコアを使う理由と原理から、スレッドとタスクの扱い、.NET の版ごとの非同期の方式、ラングトンのループの並列化までを全 4 部に収めています。

言及した記事 (2 件)

関連記事

関連用語

共有: