private List < Future < Boolean > > startTasks ( ExecutorService executor , List < Callable < Boolean > > callables ) { List < Future < Boolean >> tasks = Lists . newArrayList ( ) ; for ( Callable < Boolean > callable : callables ) { tasks . add ( executor . submit ( callable ) ) ; } return tasks ; }
Submit all the callables to the executor by synchronize their execution so they all start AFTER the have all been submitted .