浮生一世1 level
获赞
17
粉丝
1
关注
4
看过 TA
14
中国矿业大学(北京)
2019
Java
IP属地:未知
暂未填写个人简介
私信
关注
在美团面试的时候遇到的时候遇到一个问题  线程池现在有空闲线程 任务队列为空 现在又来了一个任务队列 怎样选择一个线程去执行这个任务啊 让你设计怎么设计?求大佬讲解一下啊。
LCS_:线程池设计时是这么考虑的:当任务对列没有满时,如果线程池中线程个数小于核心线程数,那么新加任务进来时,创建新的线程,并把新任务设为worker的firstTask,由新创建的线程直接执行。线程池的Worker重写了run方法,当线程调用run方法时,执行runWorker方法,此时线程会进去一个while循环不断getTask,意味着如果有新任务添加进来都会被在while里面循环的线程执行。如果线程达到核心线程数,且任务队列没有满,新添加进来的任务会被池里任意空闲的线程执行。如果工作队列满了,说明线程池的工作线程已经达到了核心数目,那么就需要创建新的线程,新任务为新线程的firstTask.... 不知道理解有没有错。。。😳
投递美团等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务