title: ThreadPoolExecutor limited number of threads
body: <p>I'm trying to create a ThreadPoolExecutor with a certain number of threads, but at the same time, i want to control the size of the pool queue. So I created the executor using the full constructor: </p>
  
  <pre><code> BlockingQueue&lt;Runnable&gt; pq =
       new ArrayBlockingQueue&lt;Runnable&gt;(MAX_THREADPOOL_SIZE);
   ThreadPoolExecutor threadPoolExecutor =
       new ThreadPoolExecutor(threadSize, threadSize, THREAD_IDLE_WAIT,
            TimeUnit.SECONDS, pq);
  </code></pre>
  
  <p>However, this gives me an <code>IllegalArgumentException</code>. If I change the constructor to </p>
  
  <pre><code>new ThreadPoolExecutor(threadSize, **threadSize+1**, THREAD_IDLE_WAIT,
       TimeUnit.SECONDS, pq);
  </code></pre>
  
  <p>it works. Why won't it work if I want the ideal and max amount of threads to be the same. </p>