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

相关推荐

04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
牛客网
牛客企业服务