;; "send" (FixedThreadPool) or "send-off" (CachedThreadPool)
;; covers most of the thread pooling strategies.
;; But in case you want a different one, use "send-via" to pass
;; a different pool, for example ForkJoin.
(import '[java.util.concurrent Executors])
(def fj-pool (Executors/newWorkStealingPool))
(defn send-fj [^clojure.lang.Agent a f & args]
(apply send-via fj-pool a f args))
(def a (agent 1))
(send-fj a inc)
(await a)
@a
;; 2