Here are Sun’s rules for thread creation in simple terms:
- If the number of threads is less than the
corePoolSize, create a new Thread to run a new task. - If the number of threads is equal (or greater than) the
corePoolSize, put the task into the queue. - If the queue is full, and the number of threads is less than the
maxPoolSize, create a new thread to run tasks in. - If the queue is full, and the number of threads is greater than or equal to
maxPoolSize, reject the task.
Full article
Origin answer