【问题标题】:Does Scala Async do everything that Clojure's core.async does?Scala Async 能做 Clojure 的 core.async 所做的一切吗?
【发布时间】:2013-11-23 09:51:13
【问题描述】:
在this presentation Haller 中谈到了 Scala Async。
在this presentation - Rich Hickey 谈到 Clojure 的 core.async。
两者似乎都是宏 - 但 Scala Async(如果我错了,请纠正我)似乎没有 CSP 或通道的概念。
Scala Async 和 Clojure 的 core.async 有什么区别?
【问题讨论】:
标签:
scala
asynchronous
macros
clojure
【解决方案1】:
core.async 的 go 宏为“通道”提供非阻塞 put 和 take 操作,否则会阻塞多对多队列。
Scala Async 的async 宏为普通Futures 的结果提供了非阻塞等待操作。
所以答案是否定的。 core.async 是关于并发进程之间的通信,而 Scala Async 处理只是等待并发进程完成。 core.async 可以轻松模拟 Scala Async 的功能,反之则不行。