码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot——嵌入式tomcat

时间:2020-03-28 21:59:12      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:打开   rem   核心线程   executor   point   exe   url   post   keep   

线程池,我觉得我准备好了,但是并没有。

面试官:知道线程池吗

我:知道啊,然后准备回答,线程池原理及实现流程

面试官打断:最近面试人挺多的,基本都知道原理,你给我讲讲keepAliveTime具体是怎样实现非核心线程过期回收的。

我:.....(黑人问号)

面试完,迫不及待的打开源码后,发现之前看源码,漏掉了一些细节,非核心线程过期回收的实现竟然这么简单。

前文源码学习:Java并发包中的线程池ThreadPoolExecutor

一、非核心线程过期回收

1、ThreadPoolExecutor.executor()再研究

    public void execute(Runnable command) {
        if (command == null)
            throw new NullPointerException();
        int c = ctl.get();
        if (workerCountOf(c) < corePoolSize) {
//当前线程数<核心线程数时
//创建工作线程Worker()
if (addWorker(command, true)) return; c = ctl.get(); } if (isRunning(c) && workQueue.offer(command)) { int recheck = ctl.get(); if (! isRunning(recheck) && remove(command)) reject(command); else if (workerCountOf(recheck) == 0) addWorker(null, false); } else if (!addWorker(command, false)) reject(command); }

 

SpringBoot——嵌入式tomcat

标签:打开   rem   核心线程   executor   point   exe   url   post   keep   

原文地址:https://www.cnblogs.com/wqff-biubiu/p/12589450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!