java.util.concurrent.ExecutorService可提供并行运行多个任务的功能。
可提交多个Callable接口的实例,ExecutorService会负责通过队列将要执行的任务分发到多个线程,并异步地返回结果,返回结果可以通过提交任务时的Future实例的get来获得。
提交任务可以通过submit提交单个任务,也可以通过invokeAll来一次提交多个任务。
若想释放ExecutorService,需要调用shutDown或shutDownNow,其中shutDownNow会不等待之前提交的任务执行完毕而强制进行shutDown操作。