首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM.NET与Clojure STM

STM.NET与Clojure STM
EN

Stack Overflow用户
提问于 2013-06-25 00:27:05
回答 1查看 1.1K关注 0票数 6

我想知道为什么Clojure已经实现了软件事务内存,并且没有看到任何问题,而微软还没有完成它的C#工作,并注意到一些问题,使得实现这里描述的http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx是不切实际的:

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-27 00:59:57

对于扫描隧道显微镜,有许多不同的方法。这是一个非常广泛的主题,就像“类型系统”一样:一种方法很容易成功,而其他方法由于各种不同的原因而失败。

Clojure的STM有几个设计决策,使它比以前的方法更实用和有效:

  • It 不会尝试使用STM来保护任意数据-您必须使用特殊的托管引用,如(ref和类似的)。这使得它比许多早期的STM方法(这包括微软的方法,至少如上面链接的文章中所描述的)更简单和更有针对性的设计,
  • 它使用多版本并发控制immutable data。这使得事务处理变得更加有效和实用。特别是,这意味着非事务性读取不需要任何锁定,这是一个巨大的性能优势...
  • 它是在函数式语言的上下文中完成的-特别是,默认情况下Clojure中的大多数代码都是无副作用的,这使得应用像事务重试这样的技术要容易得多。

由于这些设计决策,Clojure的STM与以前的STM方法截然不同,我认为成功是因为它的新颖设计。下面的视频有点老了,但如果你想了解它的工作原理,那就太棒了:

http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17280349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档