public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue)
假入创建的线程池核心数5,最大12。开始的时候第一个任务进来,没满核心大小,直接创建线程执行,现在线程池活跃的数是1,现在又来一个任务,1还是小于5,还是直接创建第二个线程执行任务,现在线程池活跃是2,一直创建到5。现在活跃是5了,终于没有任务来了,线程池正常了。突然,又来一个任务,现在判断发现核心数本来已经满了,怎么办呢,那就让这个任务等待吧(加入等待队列),看前五个哪个执行完了再把空出来了的线程用来执行这个任务。过一会有个任务执行完了,就轮到了排队的任务6了。执行中,又陆陆续续来了一堆任务(假设),可是现在线程池还是满的,没办法,只有把他们放到队列去慢慢排队吧!排着排着越排越多,排满了,但是还是有任务在申请加入,怎么办,没办法,线程池看情况不对劲,只好再增加线程去执行排队的任务,现在增加的就是非核心的线程。终于排在队列前面的任务看到希望了,就被执行了。那些原本排不进来的也终于排进来了。随着任务的增加,线程池的创建,到了线程池允许最大数12,现在任务队列外还有在申请加入,可是没法了,只能拒绝掉。