Sie könnten einfach einen Thread mit einer Funktion starten, die ewig läuft.
(defn forever []
;; do stuff in a loop forever
)
(.start (Thread. forever))
Wenn Sie nicht wollen, dass der Hintergrund-Thread das Beenden des Prozesses blockiert, müssen Sie ihn zu einem Daemon-Thread machen:
(doto
(Thread. forever)
(.setDaemon true)
(.start))
Wenn Sie etwas mehr Finesse wünschen, können Sie die Fabrik java.util.concurrent.Executors verwenden, um einen ExecutorService zu erstellen. Dies erleichtert die Erstellung von Thread-Pools, die Verwendung benutzerdefinierter Thread-Fabriken, benutzerdefinierter Eingangswarteschlangen usw.
El claypoole lib wickelt einen Teil der Arbeitsausführung in eine Clojure-freundlichere Api ein, falls Sie das anstreben.