[ Java ]中的线程池工作原理,为什么不是先创建线程而是先往阻塞队列里塞任务?

查看 37|回复 2
作者:lsk569937453   
假设核心线程数为 n,最大线程数为 m 。线程池创建后,就提交了 n 个任务且这 n 个任务一直在执行,没有结束。此时再提交一个任务就会塞到任务队列里。我的疑问是新提交的这个任务为什么不是创建一个新的线程执行?。线程池不是应该首先要保证任务完成吗?
现在的逻辑是"先判断任务队列是否满再判断是否达到最大线程数",这样设计有什么优点呢?
cheng6563   
会创建新的啊,直到执行中的线程达到 m 才会按策略或阻塞或报错。
codegenerator   
先创建线程如果线程执行完任务就会空闲,空闲等待一定时间就会销毁
这样会有比较多的线程创建销毁
您需要登录后才可以回帖 登录 | 立即注册

返回顶部