ソフトウェアトランザクションメモリ (STM)は、共有メモリの場所にアクセスするときに非同期操作とスレッドを同期するためのロックおよびその他の従来のメカニズムの代替です。 STMメカニズムは、最新のDBMSでのトランザクションの操作に似ており、その使用は一般にロックの使用よりも遅いですが、STMは開発者に並列計算を管理するより簡単な方法を提供します。
.NETでSTMを使用するのは非常に簡単です。
Atomic.Do(()=> {
<statememts>
});
ここで、statementsは、トランザクションで実行される式です。
多くの言語用にSTMを実装するライブラリが多数あります。 STM for .NETは、以前はMicrosoft Researchグループの独立したプロジェクトとして存在していましたが、C#に加えて、さらに4つのSTMライブラリがあります。 そして今、このメカニズムはフレームワークの一部になっています。
* STM msdn.microsoft.com/en-us/devlabs/ee334183.aspxから.NET 4.0をダウンロードします
* STM en.wikipedia.org/wiki/Software_transactional_memory(eng )に関するWiki記事
*美しいoncurency(Haskell) research.microsoft.com/en-us/um/people/simonpj/papers/stm/beautiful.pdf (pdf)の記事、 shai_xylydに感謝
www.infoq.com/news/2009/07/Software-Transactional-Memory経由