当调用 execute() 方法添加一个任务时,线程池会做如下判断:

    1. 如果线程池里线程数量小于corePoolSize,不管线程池里面的线程是否处于运行状态,那么马上创建线程运行这个任务;
    2. 如果线程池里线程数量大于或等于corePoolSize,那么将这个任务放入队列。
    3. 如果这时候队列满了,而且线程池里的线程数目小于maximumPoolSize,那么还是要创建线程运行这个任务;
    4. 如果队列满了,并且线程池里的线程数目达到maximumPoolSize,那么线程池就会执行handler策略。