concurrent download using thread pool