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.