@Override public void run(List<Plan> plans, Map<String, Object> choices) { /* * create and submit tasks */ PlanModFutureTask[] tasks = new PlanModFutureTask[plans.size()]; for (int i = 0; i < plans.size(); i++) { PlanModRunnable r = new PlanModRunnable(choices, plans.get(i)); PlanModFutureTask t = new PlanModFutureTask(r); executor.execute(t); tasks[i] = t; } /* * wait for completion */ for (int i = 0; i < tasks.length; i++) { try { tasks[i].get(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } }
public void finalize() { try { super.finalize(); } catch (Throwable e) { e.printStackTrace(); } executor.shutdown(); }