title: ThreadPoolExecutor: how does it reuse threads
body: <p>I read that <code>ThreadPoolExecutor</code> has pool of threads and this pool is destined to reduce cost of creation new threads (at least I understood phrase below in such way):</p>
  
  <blockquote>
    <p>When you send a task to the executor, it tries to use a pooled thread
    for the execution of this task, to avoid continious spawning of
    threads. [Java 7 Concurrency Cookbook]</p>
  </blockquote>
  
  <p><strong>BUT</strong>, as I know we have got no way to restart thread in Java. </p>
  
  <p><em><strong>Question:</em></strong> How does ThreadPoolExecutor avoid creation of new threads?</p>