2010年6月9日水曜日

Concurrency patterns

並行/並列実行とかマルチスレッドのパターンの情報源。

まずは POSA 第2巻。並行とネットワークのパターン集から。
Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects


直接的には、「Concurrency patterns」 にカテゴライズされている以下のパターン。
  • アークテクチャ・パターン
    • Half-Sync/Half-Async
    • Leader/Followers
  • デザインパターン
    • ActiveObject
    • MonitorObject
    • Thread-Specific
また、関連するカテゴリとして「Event Handling Patterns」と「Synchronization Patterns」があり、以下のような内訳
■ Event Handling Patterns
  • アークテクチャ・パターン
    • Reactor
    • Proactor
  • デザインパターン
    • Asynchronous Completion Token
    • Acceptor-Connector
■ Synchronization Patterns
  • デザインパターン
    • StrategiedLocking
    • Thread-SafeInterface
    • Double-CheckedLockingOptimization
  • C++ イディオム
    • ScopedLocking

上述のパターン群のうち多くは、下リンクの『パターン言語』でも、分散・並行化設計パターンのパートに含まれている。
プログラムデザインのためのパターン言語
プログラムデザインのためのパターン言語

ただし POSAv2 に無い、以下のパターンも含まれている。
  • ObjectSynchronizer
  • ObjectRecovery
  • Bodyguard


.NET 4.0 の Parallel Patterns というものもある。以下のリンクから C# 版とVB 版 がダウンロードできる。
PATTERNS OF PARALLEL PROGRAMMING
  • Delightfully Parallel Loops
  • Fork/Join
  • Passing Data
  • Producer/Consumer
  • Aggregations
  • MapReduce
  • Dependencies
  • Data Sets of Unknown Size
  • Speculative Processing
  • Laziness
  • Shared State
実はさっき見つけたばかりで、まだ読んでいない。C# の仕事をする事になりそうなので興味深いが、現場では多分 .NET 3.5 を使う事になりそうな模様。

0 件のコメント:

コメントを投稿