title: Whether to use invokeAll or submit - java Executor service
body: <p>I have a scenario where I have to execute 5 thread asynchronously for the same callable. As far as I understand, there are two options:</p>
  
  <p>1) using submit(Callable)</p>
  
  <pre><code>ExecutorService executorService = Executors.newFixedThreadPool(5);
  List&lt;Future&lt;String&gt;&gt; futures = new ArrayList&lt;&gt;();
  for(Callable callableItem: myCallableList){
      futures.add(executorService.submit(callableItem));
  }
  </code></pre>
  
  <p>2) using invokeAll(Collections of Callable)</p>
  
  <pre><code>ExecutorService executorService = Executors.newFixedThreadPool(5);
  List&lt;Future&lt;String&gt;&gt; futures = executorService.invokeAll(myCallableList));
  </code></pre>
  
  <ol>
  <li>What should be the preferred way?</li>
  <li>Is there any disadvantage or performance impact in any of them compared to the other one?</li>
  </ol>