(import [concurrent.futures [ThreadPoolExecutor as-completed]] [random [randint]] [sh [sleep]]) (defn task-to-do [] (sleep (randint 1 5))) (with-as (ThreadPoolExecutor 10) executor (setv jobs (list-comp (.submit executor task-to-do) (x (range 0 10)))) (for [future (as-completed jobs)] (.result future)))