在Clojure中,我有四个原语来管理并发场景。
我的问题是-在Scala中是否有一个成熟的等价物?
假设-我将假设:
发布于 2013-11-16 17:38:58
因为这一点,您列出的Clojure are based in software transactional memory.的大多数并发结构基本上只是询问Scala中对STM的支持。根据Akka documentation,Scala中STM的最佳选择是ScalaSTM,他们说将来的某个时候它实际上将被包含在Standard中。
ScalaSTM支持代理和参考(我认为这实际上是基于Clojure版本的)。我认为原子的必然结果是Ref.single类型,它只是一个引用,您可以在atomic块之外使用它。
根据您的用例,var的一个很好的替代物将是Java的ThreadLocal或Scala的DynamicVariable。如果您只需要线程本地数据,但是如果您实际上需要动态绑定,那么我认为您需要ThreadLocal。
https://stackoverflow.com/questions/20017650
复制相似问题