【问题标题】:Using alt! instead of alts! in Clojure使用 alt!而不是替代品!在 Clojure 中
【发布时间】:2015-02-17 05:32:55
【问题描述】:

我有一些代码尝试通过通道发送消息或在 150 毫秒后超时:

(let [[ret _] (alts!! [[work-chan parsed-body] (timeout 150)])]
  (cond ret :ok :else :error))

我想知道通过通道发送消息的 Clojure 惯用方式是什么,是 alt!!推荐的方式?如果是这样,我应该如何使用它?

【问题讨论】:

    标签: clojure channel core.async


    【解决方案1】:

    回答: In clojure (core.async) what ‘s the difference of alts and alt

    alt! 必须在go 块中使用,alt!! 函数将锁定线程。

    alts!!alts! 类似,不同之处在于将像<!! 一样进行获取,而将像>!! 一样进行放置,将阻塞直到完成,并且不打算在(go ...) 中使用块。

    文档:https://clojure.github.io/core.async/#clojure.core.async/alt!!

    【讨论】:

    • 您介意用 alt 重写我的超时代码吗? ?提前谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2011-08-14
    • 2013-11-29
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多