gpt4 book ai didi

clojure future vs 延迟

转载 作者:行者123 更新时间:2023-12-04 22:45:30 25 4
gpt4 key购买 nike

我一直在阅读 Clojure 中的编程并找到了文本

(defn get-document [id]
; ... do some work to retrieve the identified document's metadata ... {:url "http://www.mozilla.org/about/manifesto.en.html"
:title "The Mozilla Manifesto"
:mime "text/html"
:content (delay (slurp "http://www.mozilla.org/about/manifesto.en.html"))})

如果调用者可能总是需要这些数据,那么在延迟上替换 future 的更改可以证明是吞吐量的显着提高。

我没有完全理解这部分,有人可以解释一下。

最佳答案

简单回答 future是 body 的后台执行,delay是 body 的按需执行。示例:如果您有 100 个列表 delay -ed 代码,并尝试遍历它 - 代码将在评估每个列表项时阻塞(例如执行 HTTP 请求)并且第一次迭代会很慢。同 future -d 代码 - 它将评估后台线程中的所有内容,结果将在您的循环中立即可用。

经验法则 - 如果有可能根本不需要部分或大部分内容 - 使用 delay ,否则使用 future .

https://clojuredocs.org/clojure.core/delay
https://clojuredocs.org/clojure.core/future

关于clojure future vs 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com