Ert*_*tin 6 clojure core.async
我core.async什么时候应该使用Clojure的库,什么样的应用程序需要那种异步的东西?
Clojure提供了4个基本的可变模型,如refs,agent,atoms和thread locals/vars.这些可变引用是否无法以任何方式core.async提供轻松提供的内容?
你能为异步编程提供真实世界的用例吗?
我怎么能理解当我看到问题并点击它然后我说"这是我应该应用core.async的地方"?
我们也可以core.async在ClojureScript中使用它是一个单线程平台,有什么优点(除了回调地狱)
你可能希望看到这个:
core.async的最佳用例是ClojureScript,因为它允许您模拟多线程编程并避免回调地狱.
在JVM Clojure中,core.async也可以方便地用于(轻量级)生产者 - 消费者体系结构.当然,您也可以始终使用本机Java队列.
它指出,有在编程界相关联的单词“异步” 2层普通的意思是非常重要的:
core.async对于1(通过队列的异步消息传递)非常自以为是,并提供了一个用于实现绿色线程的go宏(该宏)。
根据我的经验,如果您只需要无阻塞,我个人建议从Manifold开始,它对您的用例进行较少的假设,然后将core.async用于无法使用的更高级的用例。注意,这两个库很好地互操作。