ClojureのAgentの実装では、2 + Runtime.getRuntime().availableProcessors()で得られるサイズでスレッドプールを生成するが、このスレッドプールのサイズはset-agent-send-executor!に任意のExecutorServiceを渡して書き換えることが出来る。
set-agent-send-executor!が追加されたのはどうやらClojure1.5からのようだが、実装は、
(set! clojure.lang.Agent/pooledExecutor executor)
しているだけ。
以下のように使えばAgentのsend関数で使用されるスレッドプールを変更出来る。
(set-agent-send-executor! (Executors/newFixedThreadPool 20))