Clojure - attendre

Bloque le thread actuel (indéfiniment!) Jusqu'à ce que toutes les actions distribuées jusqu'ici, de ce thread ou agent, à l'agent (s) se soient produites. Bloquera sur les agents défaillants.

Syntaxe

Voici la syntaxe.

(await agentname)

Parameters - 'agentname' est l'agent pour lequel la fonction d'attente doit être définie.

Return Value - Aucun.

Exemple

Un exemple sur la façon dont cela est utilisé est montré dans le programme suivant.

(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)

Production

Le programme ci-dessus produit la sortie suivante.

0
100

Vous pouvez voir à partir du programme ci-dessus que la valeur de l'agent est immédiatement imprimée à l'écran car la fonction d'attente attendra que Clojure mette d'abord à jour la valeur de la fonction et retournera ensuite le contrôle au programme appelant.

clojure_agents