线程池中的队列分两种,有界队列和无界队列,
当使用有界队列的时候,新加入一个任务会先判断核心线程是否有空闲的,如果有,就直接使用线程执行,如果没有,会看看有界队列是否已满,如果未满,则将任务加入有界队列中,等核心线程有空闲的时候再去从队列中获取执行,如果有界队列已满,这个时候就会看看正在运行的线程数是否大于最大线程数,如果不大于,则创建新的线程执行这个任务,如果大于,则执行拒绝策略。
当使用无界队列的时候,新加入一个任务,如果运行的线程数小于核心线程数,则创建新的线程执行此任务,如果已经等于 核心线程数,则将任务加入队列当中,等有空闲线程再去执行此任务。