title: How I'll get to know that, all threads in ExecutorService have finished their execution
body: <p>I have created <strong>ExecutorService</strong> like:</p>
  
  <pre><code>private static final java.util.concurrent.ExecutorService EXECUTOR_SERVICE = new java.util.concurrent.ThreadPoolExecutor(
          10, // core thread pool size
          5, // maximum thread pool size
          1, // time to wait before resizing pool
          java.util.concurrent.TimeUnit.MINUTES, 
          new java.util.concurrent.ArrayBlockingQueue&lt;Runnable&gt;(MAX_THREADS, true),
          new java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy());
  </code></pre>
  
  <p>and added threads in to it with below code:</p>
  
  <pre><code>EXECUTOR_SERVICE.submit(thread);
  </code></pre>
  
  <p>Now I want know when all threads in EXECUTOR_SERVICE have finished their task so that I can do some dependent tasks.</p>
  
  <p>Kindly suggest any way to achieve it.</p>