当调用execute()方法添加一个任务时,线程池会判断:
1)如果正在运行的线程数量小于corePoolSize,就马上创建线程执行这个任务
2)如果正在运行的线程数量大于等于corePoolSize,就将这个任务放入阻塞队列中
3)如果这时阻塞队列满了,而且正在运行的线程数量小于maximumPoolSIze,也马上创建线程执行这个任务
4)如果阻塞队列满了,正在允许的线程数量大于等于maximumPoolSize,就会执行拒绝策略
5)当一个线程完成任务,就会从阻塞队列中取出下一个任务来执行
6)如果一个线程无事可做,并且超过了keepAliveTime,线程会判断:如果当前执行的线程数量大于corePoolSize,这个线程就会被停掉。