情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

C#での、正しいマルチスレッドプログラムの書き方を求めて(2011年11月版) このエントリーを含むはてなブックマーク

C#におけるマルチスレッドプログラミングの正しい作法が知りたい

そんなとき、やっぱりたよりになるのはmsdnだよねということで、msdnライブラリから、意外と散らばっているマルチスレッド関連ページをかき集めて、参考になりそうな資料を抜粋し、一覧にしたのがこのエントリです。

この記事は2009年の記事をベースに、一覧の内容を大幅にアップデートしたものです。内容は新しくなり、量も増えました。

丁寧な解説が良い

集めた資料にはマルチスレッド用のデザインパターンやガイドライン、 基礎的な用語の解説などが充実しており、とても参考になります。 クラスの解説だけでなく、 こういう場合はどれを使った方がよいという指針が明らかにされていて頼もしい限りです。

一つ一つ読むもよし、また、なんとなく興味を惹かれるタイトルのページを開いてみるのも面白いと思います。

その前に

資料の中での解説は丁寧だと思うのですが、マルチスレッドプログラミングの動作や、関連する専門用語(「ロック」「セマフォ」「デッドロック」「競合状態」「ミューテックス」…)をスムーズに理解するために、オペレーティングシステム(OS)について一度学んでおくことをおすすめします。(参考:「OSの基本を俯瞰できる良書『オペレーティングシステムの仕組み』」)

メインコンテンツ:資料一覧

ここから、肝心の資料集です

特におすすめなのは、はじめの3つ「非同期プログラミングのデザインパターン」「並列プログラミング」「マネージスレッド処理 」です。 .NET Frameworkを使ったマルチスレッドプログラミングについてよく整理して述べられているこの3つを頭に持ってきました。

非同期プログラミングのデザインパターン - .NET Frameworkの拡張開発

並列プログラミング - .NET Frameworkの拡張開発

マネージスレッド処理 - .NET Frameworkの拡張開発

プログラミングの概念(Visual C#)

スレッドセーフなコレクション - .NET Frameworkの基本開発

ファイルおよびストリーム入力 - .NET Frameworkの基本開発

System.Threading名前空間を使用したマルチスレッドコンポーネントの作成

BackgroundWorkerコンポーネント

Timerコンポーネント

Reactive Extensions(英語のみ)

クラスライブラリ

他の資料から頻繁に参照されているクラスライブラリのページを抜粋。

デバッグ・プロファイリング

MSDNマガジン

あまり網羅度高くないかも。

プログラミング C# - 第15章 マルチスレッドプログラミング

patterns & practices

Patterns_of_Parallel_Programming_CSharp.pdf

スレッド処理のサンプル

タイマーベースのサーバータスクの作成

並列プログラミングのパターン: .NET Framework 4 での並列パターンの理解と適用

まとめ

.NET Framework 4が登場して、 マルチスレッドプログラミングに関連するページが大幅に増えています。

「使い方」だけでなく「どれを使うべきか」や「何に気を付けるべきか」が幅広く書かれているので、 マルチスレッドプログラミングをしっかりしたいと思ったらはじめのほうの資料だけでも読んでみることをおすすめします。

選択肢として「こういう方法があるんだ、こういう方法もあるんだ」ということを把握しておくことは、すぐ使わないにしても、役に立つことだと思います。

まとめるために読んでいたらプログラムを書きたくなってきた。

C# | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。