clojure - 何时在 Clojure 中使用 core.async?

标签 clojure core.async

我什么时候应该使用 Clojure 的 core.async库,什么样的应用程序需要那种异步的东西?

Clojure 提供了 4 个基本的可变模型,例如 引用文献 , 代理商 , 原子线程局部变量/变量 .这些可变引用不能以任何方式提供core.async提供方便?

您能否提供异步编程的真实用例?

我怎样才能理解它,以便当我看到问题时,它会点击并说“这是我应该应用 core.async 的地方”?

我们也可以使用core.async在单线程环境的 ClojureScript 中,有什么优点(除了避免回调 hell )?

最佳答案

您可能希望阅读以下内容:

  • Clojure core.async Channels Rich Hickey 的介绍性博客
  • Mastering Concurrent Processes with core.async勇敢的 Clojure 条目

  • core.async 的最佳用例是 ClojureScript,因为它允许您模拟多线程编程并避免回调 hell 。

    在 JVM Clojure 中,core.async 也可以在您需要(轻量级)生产者-消费者架构的地方方便地使用。当然,你总是可以use native Java queues为此,也是如此。

    关于clojure - 何时在 Clojure 中使用 core.async?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352562/

    相关文章:

    clojure - 开发 "model"用于 clojurescript/clojure 应用程序

    algorithm - Clojure 字符串用文本替换 map 向量

    error-handling - 使用 clojure core.async 管道处理错误

    clojure - 创建需要多次关闭的 channel

    clojure - 如何确定何时从作者端关闭 core.async channel ?

    Java 将自定义对象传递给 Clojure

    clojure - 非映射集合谓词?

    Clojure 控制台在简单的 HelloWorld 上发出 'unsigned-bit-shift-right' 警告

    node.js - 如何使用 core.async 代替回调?

    clojure - 在 clojure core.async go-loop 中工作的方式有哪些权衡?