ThreadPool implementation using ExecuterService