title: specifying ThreadPoolExecutor problem
body: <p>Is there any way to create Executor that will have always at least 5 threads, and maximum of 20 threads, and unbounded queue for tasks (meaning no task is rejected)</p>
  
  <p>I tried new <code>ThreadPoolExecutor(5, 20, 60L, TimeUnit.SECONDS, queue)</code>
  with all possibilities that I thought of for queue:<br></p>
  
  <pre><code>new LinkedBlockingQueue() // never runs more than 5 threads
  new LinkedBlockingQueue(1000000) // runs more than 5 threads, only when there is more than 1000000 tasks waiting
  new ArrayBlockingQueue(1000000) // runs more than 5 threads, only when there is more than 1000000 tasks waiting
  new SynchronousQueue() // no tasks can wait, after 20, they are rejected
  </code></pre>
  
  <p>and none worked as wanted.</p>