Clojure - attende

Poiché c'è un ritardo quando un valore di un agente viene aggiornato, Clojure ha fornito una funzione di "attesa per" che viene utilizzata per specificare il tempo in millisecondi di attesa per l'aggiornamento dell'agente.

Sintassi

Di seguito è riportata la sintassi.

(await-for time agentname)

Parameters- "agentname" è l'agente per il quale deve essere impostata la funzione "await-for". "time" è il tempo di attesa in millisecondi.

Return Value - Restituisce false logico se restituisce a causa di timeout, altrimenti restituisce true logico.

Esempio

Un esempio di come viene utilizzato è mostrato nel seguente programma.

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

Produzione

Il programma precedente produce il seguente output.

0
true
100

Puoi vedere dal programma sopra che il valore dell'agente viene stampato immediatamente sullo schermo perché la funzione "wait-for" ha incorporato un ritardo, che ha permesso a Clojure di aggiornare il valore dell'agente.

clojure_agents