Clojure - await



阻塞当前线程(无限期!),直到所有为此分派给agent(s)的动作(来自此线程或agent)都已完成。 将阻塞失败的agent。

语法

以下是语法。

(await agentname)

参数 − ‘agentname’ 是应设置 await 函数的 agent。

返回值 − 无。

示例

以下程序显示了如何使用它。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send-off counter + 100)
   (await counter)
   (println @counter)
   
   (shutdown-agents))
(Example)

输出

上述程序产生以下输出。

0
100

您可以从上面的程序中看到,agent 的值会立即打印到屏幕上,因为 await 函数将等待 Clojure 首先更新函数的值,然后才会将控制权返回给调用程序。

clojure_agents
广告
© . All rights reserved.