Pseudo Code
ExecuteService threadPool = Executors.newFixedThreadPool(threadSize); List<Solution> solutions = deepCloningSolutions(solution, threadSize); List<Callable<MetaAlgorithm>> callables = new ArrayList<Callable<MetaAlgorithm>>(); Future<Solution> futures = threadPool.invokeAll(callables);