title: Java ExecutorService when to call shutdown()
body: <p>I'm new to Java multithreading. I'm using <code>ExecutorService</code> to download a bunch of web pages to analyze. Currently my approach is to submit all Callables and put the Future objects in a list in a loop, then call <code>shutdown()</code> and <code>awaitTermination()</code>, finally I process the future list.<br>
  My question is in my case, is it OK to put <code>shutdown()</code> after filling up the future list like this? As <code>get()</code> of Future already blocks until the task is done, seems that I should instead call it when I finish processing all the futures.</p>