//线程的数量 private static final int UPD_NO_THREADS = 5; //线程池的容量 private ExecutorService executorService = Executors.newFixedThreadPool(UPD_NO_THREADS); public void runExecutorService(){
List
while(x>0){ for(int x=0;x<100;x++){ //AService是一个实现Runnable接口的类 todo.add(Executors.callable(new AService(y))); } //Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。 //取消则由 cancel 方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用 Future 但又不提供可用的结果,则可以声明 Future 形式类型、并返回 null 作为底层任务的结果。
List > result = executorService.invokeAll(todo); // invokeAll(Collection >tasks)执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。 todo.clear(); } executorService.shutdown(); }
ExecutorService的submit(runnable)返回Future对象