据我了解,有几种不同的算法来实现软件交易记忆(这是一个非常活跃的研究领域)。在哪里可以找到(不必潜入源代码),这些源代码在不同的语言和库中使用,尤其是在Clojure和Haskell(GHC)中?

有帮助吗?

解决方案

Clojure STM上的最终资源(除了代码本身之外)是 软件交易内存 马克·沃尔克曼(Mark Volkmann)的文章。

它列出了STM-The-the-ablection(与其他并发方法相比)的简短高级概述,总结了Clojure中可用的各种并发功能,然后潜入Clojure的STM中,确切地描述了交易过程中发生的事情,并最终向下往下走了什么到所涉及的单个课程的水平。除了提供有关Clojure的STM机械内部运作的许多硬信息外,它还包含许多与Clojure的面向同时性功能有关的非常有见地的备注,因为它们在惯用性Clojure程序中使用。

Mark的STM资源的实际切入点是 这一页, ,除了指向Main STM文章的最新版本的链接外,目前还具有一些STM幻灯片。

其他提示

在很高的水平上,Clojure的STM实现很有趣的是,它与所有其他实现都大不相同。与关于假设的STM相比,Rich对实际现实世界高绩效数据库的看法要多得多。例如,据我所知,Clojure的STM是唯一使用多版并发控制(MVCC)的STM,这是数据库世界中的一种知名技术(实际上,那里几乎没有严重的数据库 使用MVCC),但在STM世界中几乎没有讨论。

http://www.haskell.org/haskellwiki/software_transactional_memory 对于Haskell(和GHC),以及 http://clojure.org/concurrent_programming 对于克洛杰尔。

我相信GHC配备了STM库,并且Clojure中有一些STM的技术。

有关其他语言,请参阅 http://en.wikipedia.org/wiki/software_transactional_memory#implementations

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top