线程池设计时是这么考虑的:当任务对列没有满时,如果线程池中线程个数小于核心线程数,那么新加任务进来时,创建新的线程,并把新任务设为worker的firstTask,由新创建的线程直接执行。线程池的Worker重写了run方法,当线程调用run方法时,执行runWorker方法,此时线程会进去一个while循环不断getTask,意味着如果有新任务添加进来都会被在while里面循环的线程执行。如果线程达到核心线程数,且任务队列没有满,新添加进来的任务会被池里任意空闲的线程执行。如果工作队列满了,说明线程池的工作线程已经达到了核心数目,那么就需要创建新的线程,新任务为新线程的firstTask....
不知道理解有没有错。。。😳