在Clojure中,我有四个原语来管理并发场景
我的问题是 - Scala中是否有成熟的等效内容?
假设 - 我将假设:
答案 0 :(得分:7)
您为Clojure are based in software transactional memory.列出的大多数并发结构因此,我认为您基本上只是询问Scala中的STM支持。根据{{3}},Scala中STM的最佳选择是Akka documentation,他们说它实际上将在未来的某个时间包含在Scala标准库中。
ScalaSTM支持代理和引用(我认为它实际上基于Clojure版本)。我认为Atom的推论是 Ref.single 类型,它只是一个可以在atomic
块之外使用的引用。
根据您的使用情况,var
的一个很好的替代品是Java的ScalaSTM或Scala的ThreadLocal
。如果您想要的只是线程本地数据,请使用ThreadLocal
,但如果您确实需要动态绑定,那么我认为您需要DynamicVariable
。