add a rough version of an auto-balancing ThreadPoolExecutor