请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

线程池流程理解

老师下面理解对吗?
1 线程池 初始化 、执行过程
图片描述
a 执行构造函数,初始化相关值,但是此时线程池里面是 没有创建线程 的;
b 当执行excute方法,才会创建线程,创建流程如下
图片描述

先判断线程池中核心线程池所有的线程是否都在执行任务。如果不是,则新创建一个线程执行刚提交的任务,否则,核心线程池中所有的线程都在执行任务,则进入第2步;
判断当前阻塞队列是否已满,如果未满,则将提交的任务放置在阻塞队列中;否则,则进入第3步;
判断线程池中所有的线程是否都在执行任务,如果没有,则创建一个新的线程来执行任务,否则,则交给饱和策略进行处理

正在回答

2回答

Jimin 2019-05-18 20:46:18

你好,这些内容基本在课程里都有原话,可以直接从课程中找到答案。

另外,你这个很像是在别处看到贴过来的,但是还没贴全,就是想看看对不对,你这里提到的第二步第三步,实际中根本没提前说明哪一步是第二步哪一步是第三步。最后,还是建议你认真的学习课程视频。课程里讲解线程池的内容基本上可以满足绝大部分面试的需求,我自己面试别人也是只考察对初始化那个函数参数的细节理解,线程池本身没什么神秘,弄清楚那几个参数基本不用愁任何线程池的问题和使用。

1 回复 有任何疑惑可以回复我~
  • 提问者 无道8 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-18 21:31:25
提问者 无道8 2019-05-18 21:34:00

对的 我贴过来的,这个我理解对吗  a 执行构造函数ThreadPoolExecutor,初始化相关值,但是此时线程池里面是没有创建线程 的;b 当执行excute方法,才会创建线程?

0 回复 有任何疑惑可以回复我~
  • Jimin #1
    这个问题明显能感觉出你没认真理解课程内容。
    线程池构建时有个keepAlive参数,线程池里的线程,一段时间没用的话自己就会回收,coreSize本质上就不代表线程池就有这么多线程,而且他还设置了最大线程数目。针对你的问题,我反问你一句就ok了,如果初始化时创建线程,该创建比较合适,会不会还没使用就被回收了,你仔细想想,我感觉你能想明白
    回复 有任何疑惑可以回复我~ 2019-05-18 21:40:09
  • 提问者 无道8 回复 Jimin #2
    好的 明白了 谢谢了
    回复 有任何疑惑可以回复我~ 2019-05-19 09:33:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信