execution of concurrent tasks using a thread pool