Concurrency and Coordination Runtime

Concurrency and Coordination Runtime (CCR)とは、マイクロソフトがレゴ・マインドストームなどのロボット制御プログラミング向けに配布しているMicrosoft Robotics Developer Studio (MRDS)の一部で、.NET Frameworkをベースとした非同期プログラミングライブラリである。MRDSの一部として配布されているが、ロボット制御に特化されているわけではなく、一般的なアプリケーション用の非同期プログラミングライブラリとしても利用できる。CCRはErlangの影響が極めて強く受けており、用語こそ違えど基本的な考え方はほぼ同一である。

CCRのランタイムには、同時実行できるスレッド数が固定されたスレッドプールを実装するDispatcherクラスが含まれている。また、各DispatcherにはDispatcherQueueというプロシージャのエントリポイントを示すデリゲートのキューを持っており（CCRで分散処理したい作業項目の一覧を持っており）、作業項目は実行スレッドに分散され非同期実行される。またDispatcherオブジェクトには作業項目を非同期実行した結果を入れる汎用ポートと呼ばれるキューも存在している。各作業項目は、処理結果を消費するReceiverTaskオブジェクトに関連付けることができる。Arbiter ReceiverTaskを管理し、彼らを期待して準備ができてとする場合、それらを呼び出すPortのキュー。

 関連項目 
 Task Parallel Library
 Joins (concurrency library)
 Erlang

 脚注 

 参考文献 

 外部リンク 
CCR: MSDN Magazine
CCR: Channel9 Interview
CCR and DSS Toolkit 2008 homepage
Concurrency and Coordination Runtime MSDN Documentation

Category:並行計算
Category:.NET
Category:ロボット工学ソフトウェア
Category:長大な項目名