私が理解しているように、ソフトウェアトランザクションメモリを実装するためのいくつかの異なるアルゴリズムがあります(これは非常に活発な研究領域です)。 ClojureとHaskell(GHC)を中心に、さまざまな言語やライブラリで使用されている場所はどこにありますか?Clojure、Haskell(および他の言語)でSTM用に使用されるアルゴリズムは何ですか?
答えて
のClojureのSTMの究極のリソースを参照してください - 離れて、コード自体から - マーク・フォルクマンによるSoftware Transactional Memory記事です。
Clojureで利用可能なさまざまな並行処理機能を要約し、ClojureのSTMに入り込んで、トランザクション中に何が起こるかを正確に記述するSTM-the-approach(他の並行処理のアプローチと比較して)最終的には関連する個々のクラスのレベルにまで下がります。 ClojureのSTM機械の内部動作に関する多くのハード情報を提供するだけでなく、Clojureの並行処理指向の機能に関する非常に洞察的な発言も数多く含まれています。
MarkのSTMリソースへの実際のエントリポイントはthis pageです。現在、STMの最新の記事へのリンクに加えて、いくつかのSTMスライドが含まれています。
ハスケル(およびGHC)の場合はhttp://www.haskell.org/haskellwiki/Software_transactional_memory、Clojureの場合はhttp://clojure.org/concurrent_programmingを参照してください。
GHCにはSTMライブラリが付属していると思いますが、ClojureにはSTMのいくつかのテクニックがあります。他の言語については
は、http://en.wikipedia.org/wiki/Software_transactional_memory#Implementations
非常に高いレベルで、ClojureのSTMの実装について興味深いのは、他のすべての実装と非常に異なる点です。 Rich氏は仮想のSTMに関する学術論文よりも実際の実績のある高性能データベースに向けてより多くを見てきました。たとえば、ClojureのSTMは、データベース世界でよく知られている技術であるMVCC(Multi Version Concurrency Control)を使用する唯一のSTMです(実際にはそこには深刻なデータベースがありません。は、 tはMVCCを使用しています)、STMの世界ではほとんど議論されていません。
この時点では、いろいろなSTMアルゴリズム/実装の間にまだ良い比較はありません。そう、はい、彼らはかなり異なっています。そして、どのセマンティクスが最も自然であるかについて話すことができます。しかし、我々はMVCCが他の実装技術よりも効率的に良い/悪いと言う傾向がないという根拠はない。真のシリアライズ可能なセマンティクスを保持する実装では実現できない書き込みスキューの可能性がMVCCによって明らかになります。 (これに反対する方法もありますが)。 – sclv
- 1. Clojure STMとHaskell STMの違いは何ですか?
- 2. Javaまたは他の言語を使用してjqueryおよびjavascriptスクリプトをロードおよび実行する
- 3. Prologを他の言語よりも使用する利点は何ですか?
- 4. 辞書翻訳に使用するプログラミング言語、アルゴリズムは何ですか?
- 5. 用語集! 「ソフトウェア」、「ファームウェア」、および「ハードウェア」を結びつける言葉は何ですか?
- 6. このデモで使用する言語は何ですか?
- 7. テストに使用する良いマークアップ言語は何ですか?
- 8. プレースホルダに#sを使用するプログラミング言語は何ですか?
- 9. Google Spellで使用できる言語は何ですか?
- 10. HTTP/Websocketのデータおよびメッセージングプラットフォームに使用するHaskell Webフレームワークは何ですか?
- 11. MRI Ruby 1.8はどのようなメモリ再生アルゴリズムを使用していますか?他の言語で
- 12. 1950年代から言語用のコンパイラおよび1960の
- 13. PNaClで実行される他のプログラミング言語は何ですか?
- 14. オブジェクトリテラルの使用を提供する言語は何ですか?
- 15. - >、*および。*演算子の正しい用語は何ですか?
- 16. セキュリティにおけるREALM用語の正確な使用法は何ですか?
- 17. 他の言語のプロットタイトルの使用
- 18. アルゴリズムを他の言語にエクスポートするには?
- 19. Googleの自家用車ソフトウェアの作成に使用される言語は何ですか?
- 20. Vimの式(および言語)のセンシティブインデント - 可能ですか?
- 21. .Netライブラリは.Net言語で使用されていますか?
- 22. Clojure STMメモリ不足
- 23. Tomcatサーブレットコンテナで他のJVM言語を使用する
- 24. Pythonまたはその他のスクリプト言語をIIOPで使用
- 25. 束縛された文脈、サブドメインおよびユビキタス言語
- 26. Kevin Murphy HMM toolbokのlearn_dmm.mで使用されるアルゴリズムは何ですか?
- 27. JavaとJavascriptの両方で使用できるテンプレート言語は何ですか?
- 28. のiOSでNSErrorRecoveryAttempting、NSError、およびUIAlertViewの正しい使用は何ですか?
- 29. MySQL - DBAの自動化に使用する言語は何ですか?
- 30. EditTextで英語以外の他の言語の使用を禁止する
ありがとうございました!それは私が探していた情報の種類です(そしてそのページにはClojure STM BTWの非常に明確な説明があります)。 – Jay