tomcat线程池和普通的线程池设计上有所区别,下面主要来看看它是如何设计的
tomcat中线程池的创建
<span>org.apache.tomcat.util.net.AbstractEndpoint#createExecutor</span>
tomcat创建线程池
public void createExecutor() {
internalExecutor = true;
// 任务队列和普通的队列有所区别,后续分析
TaskQueue taskqueue = new TaskQueue();
// 线程工厂用于创建线程 本地项目name=http-nio-port-exec-序号
TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
// 创建线程池,注意这个ThreadPoolExecutor和java.util.concurrent包下的ThreadPoolExecutor有所区别
executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS,taskqueue, tf);
// 给任务队列设置线程池,用于后续任务来了判断是创建线程执行还是将线程添加到任务队列
taskqueue.setParent( (ThreadPoolExecutor) executor);
}
相关文章
Jenkins 配置 SpringBoot 自动构建部署
服务器版本 Linux version 3.10.0-957.12.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8...
Ideal连接SQLSERVER错误
错误1:[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:"PKIX path building failed: sun.security.p...
===============Nginx笔记(全)==================
基本概念: Nginx: Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫开发的,公开版本1...
【每日算法】二分查找法II
left,right=1,n while left<=right: mid="left+(right-left)//2" if 条件: right="mid+1&q...
SpringMVC(5)-ssm整合实现增删改查-mybatis层
mybatis层编写完毕后的项目目录 1.右键SpringMVC2项目-》new-》Modual-》选择maven项目(我的项目名为Study09_ssm),输入模块名,点击Finish 2.第二部的...
Java基础常见知识&面试题总结(中)
Java基础常见知识&面试题总结(中) 泛型 Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符? Java 泛型(generics) 是 JDK 5 中引入的一个新特性, 泛型提供了...
MySQL索引凭什么能让查询效率提高这么多?
我相信大家在数据库优化的时候都会说到索引,我也不例外,大家也基本上能对数据结构的优化回答个一二三,以及页缓存之类的都能扯上几句,但是有一次阿里P9的一个面试问我:你能从计算机层面开始说一下一个索引数据...
Java学习 (九)基础篇 包机制&JavaDoc
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法为: package pkg[.pkg2[.pkg3...]]; 一般利用公司域名倒置作为包名;com.feng.x...
springmvc静态资源配置
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springf...
1.2 w字+!Java IO 基础知识系统总结 | JavaGuide
首发于:JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。) 原文地址:https://javaguide.cn/java/io/io-basis.h...
Java学习 (19) Java数组篇(03)数组的使用
数组使用 数组使用一般分四种情况 1.普通 For 循环 2.For-Each 循环 (增强For循环) 3.数组作方法入参 4.数组作返回值 语法实例 多维数组 语法实例 数组使用 数组使用一般分四...
google和oracle闹掰,Java 会不会被抛弃?
眼花缭乱的编程语言 程序界的语言实在太多,但有一种语言不得不说,那就是java语言,Java语言是Android系统的主要开发语言,现在和Google的关系不是很好,但是他会被淘汰吗?下面简单地分析一...
用了 Intellij idea 这些插件和高效配置后,写代码快得飞起来,再也不用 996 加班了
0. 背景 作为一个 Java 程序员,我相信,绝大多数同学日常都是用 idea 来写代码。 Idea 作为宇宙第一 Java IDE,提供了丰富、强大的功能,可以让你写 Java 代码快得飞起来。 ...