据我所知,有多种不同的算法可用于实现软件事务内存(STM),这是一个非常活跃的研究领域。那么,在哪里可以找到使用不同语言和库的算法信息呢?特别是在Clojure和Haskell(GHC)中(无需深入源代码)。
据我所知,有多种不同的算法可用于实现软件事务内存(STM),这是一个非常活跃的研究领域。那么,在哪里可以找到使用不同语言和库的算法信息呢?特别是在Clojure和Haskell(GHC)中(无需深入源代码)。
从一个高层次来看,Clojure的STM实现与所有其他实现非常不同,这一点很有趣。Rich更多地关注实际的、真实世界中高性能数据库,而不是关于假设STM的学术论文。例如,据我所知,Clojure的STM是唯一使用多版本并发控制(MVCC)的STM,在数据库领域中,这是一种众所周知的技术(实际上,几乎没有任何严肃的数据库不使用MVCC),但在STM领域中几乎没有讨论。
请查看http://www.haskell.org/haskellwiki/Software_transactional_memory了解Haskell(和GHC),以及http://clojure.org/concurrent_programming了解Clojure的情况。
我相信GHC附带有STM库,并且Clojure中有一些STM技术。
对于其他语言,请参阅http://en.wikipedia.org/wiki/Software_transactional_memory#Implementations