An unbounded thread pool creates workers as tasks require them, without a fixed upper limit. In Clojure agents, send-off uses one for workloads involving potentially long input/output operations, while send uses a fixed-size pool for shorter CPU-intensive work. section 14.6
The flexibility has a cost: uncontrolled use can make an application lag or run out of memory. Choose it for workload characteristics, not merely because tasks are asynchronous. section 14.6
Concurrent slow agent actions
Two agents run slow updates through send-off. Each update sleeps for the requested duration before incrementing its value; await waits for both actions to finish. The example demonstrates why blocking or lengthy operations benefit from the unbounded pool. section 14.6
