sets the number of threads in the thread pool
the maximum number of _waiting_ threads. Be clear here, the queue size does not include executing threads, but only the number of tasks that can be queued after that. If you want an ExecutionService that blocks as soon as each thread is busy, set queueSize to zero.
Creates an ExecutionService which will block on submit once the specified queue size has been reached. The submitting thread will be unblocked once a task that is executing has completed.