看下Tomcat的 线程池 管理类 ,就当休息休息
Tomcat 的线程池管理在 org.apache.tomcat.util.threads 包下,我感觉 主要由
ThreadPool (及其内部类), ThreadWithAttributes 这两个类 外带一个 ThreadPoolRunnable 接口组成
ThreadPool 把 线程存储到了Hashtable threads=new Hashtable() 这个域里 ,
通过void org.apache.tomcat.util.threads.ThreadPool.addThread(Thread t, ControlRunnable cr)
方法加入线程,加入的线程是一个 ThreadPool.ControlRunnable ,ControlRunnable在内部持有一个ThreadPool ,两
者达到了 一对多且互相引用的关系 ,当把一个 线程放入 threads域后 ,会将这个线程挂载其内部已经存在的Vector
listeners=new Vector() 监听(ThreadPool.ThreadPoolListener 不过我没找到这个监听的具体实现)
创建线程(ThreadPool.ControlRunnable)的时候 会附带一ThreadWithAttributes ,写入 若干属性
ThreadWithAttributes 会写入 当前创建的ThreadPool.ControlRunnable 优先级(priority),是守护进程,名称,对了
ThreadWithAttributes 是一个特殊的 进程,并且把 当前创建的ThreadPool.ControlRunnable囊括其中,所以
ThreadPool.ControlRunnabl构造完就委托 ThreadWithAttributes 进行start 从而执行了
ThreadPool.ControlRunnable的 run方法
我发现apache 写的代码也挺有意思的 ,有很多方法的参数都不使用,并且方法也不是Override的
举几个ThreadWithAttributes方法的例子 如下
public final Object[] getThreadData(Object control ) {
return thData;
}
public final void setThreadData(Object control, Object thData[] ) {
this.thData=thData;
}
/** Generic attributes. You'll need a hashtable lookup -
* you can use notes for array access.
*/
public final Hashtable getAttributes(Object control) {
return attributes;
}
继续看,然后继续补充
分享到:
相关推荐
《深入解析Tomcat线程池源码》 Tomcat作为一款广泛应用的开源Servlet容器,其在性能优化上有着独到之处。...对于希望提升系统性能或对服务器优化感兴趣的开发者,Tomcat线程池源码是一个不可多得的学习资源。
Tomcat提供了两种线程池实现,一种是基于Apache Portable Runtime (APR)的Pool技术,另一种是纯Java实现的ThreadPool。本文主要探讨后者,即Java实现的线程池。 Java实现的线程池位于`tomcat-util.jar`中,初始化时...
总结来说,一个高效的Tomcat服务器需要合理配置其连接器的协议类型、连接数和线程池大小。通过选择合适的协议,优化连接处理方式,合理分配线程资源,可以显著提升Tomcat服务器在处理并发请求时的性能。同时,需要...
《Tomcat源码研读笔记》是对Apache Tomcat服务器内部工作原理的深度探索。Tomcat作为一款广泛应用的开源Java Servlet容器,它的源码是理解Java Web应用运行机制的关键。本笔记将围绕Tomcat的核心组件、架构设计以及...
Apache Tomcat 8.5.23 源码分析 Apache Tomcat 是一个开源的、免费的Web服务器和Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,是开发和部署Java Web应用的重要平台。深入理解Tomcat的源码有助...
一、Tomcat7源码结构解析 Tomcat7的源代码结构清晰,主要包含以下几个核心模块: 1. catalina:这是Tomcat的核心模块,负责处理Servlet容器的主要功能,如Servlet和Context的生命周期管理,请求处理等。 2. ...
源码分析是提升开发者对服务器内部运作机制理解的重要途径,尤其对于Tomcat这样的核心组件,源码的学习能够帮助我们更深入地理解Web应用的部署、运行以及性能优化。 首先,我们要了解Tomcat的架构。Tomcat7基于...
《Tomcat6源码分析——深入理解Web服务器的运行机制》 Tomcat6作为Apache软件基金会的Jakarta项目的一部分,是一款广泛使用的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为开发和部署...
首先,源码分析是提升编程技能的关键步骤之一。通过阅读Tomcat的源码,开发者可以理解其内部架构,包括如何处理HTTP请求,如何管理Web应用程序,以及如何执行Servlet和JSP。这对于优化性能、调试问题或定制自己的...
Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,实现了Servlet和JavaServer Pages(JSP)规范,使开发者能够构建和部署Web应用程序。这个资源包包含了Tomcat的源码、文档以及源码...
通过分析这个源码包,开发者不仅可以了解Tomcat的工作原理,还能学习到Java服务器编程的最佳实践,这对于提升Java Web开发技能大有裨益。同时,对于希望优化Tomcat性能或者解决特定问题的开发者来说,直接查看源码是...
Tomcat作为一款广泛应用的开源Java Servlet容器,其源码对于开发者而言是一份宝贵的教育资源。通过深入研究Tomcat7.0的源码,我们可以更好地理解HTTP服务器、Servlet容器的工作原理,提升Web应用的开发和优化能力。...
《深入剖析Tomcat 6.0源码》 Tomcat,作为开源的Java Servlet容器,是许多Web开发者和系统管理员的首选。Tomcat 6.0版本是它的一个经典版本,提供了对Servlet 2.5和JSP 2.1规范的支持。本文将围绕Tomcat 6.0源码...
通过在Eclipse集成开发环境中直接运行源码,可以方便地调试和分析Tomcat的执行流程。 首先,我们需要了解Tomcat的基本架构。Tomcat主要由以下几个核心组件构成: 1. **Catalina**:这是Tomcat的核心,负责处理...
Apache Tomcat源码分析 Apache Tomcat是一款广泛应用的开源Java Servlet容器,它是Java EE Web应用程序的标准实现。Tomcat源码的深入理解对于Java Web开发者来说是至关重要的,它可以帮助我们了解HTTP服务器的工作...
【标题】:“Tomcat8源码构建” 在深入探讨Tomcat8源码构建的过程中,我们需要了解几个关键概念和步骤。Tomcat是Apache软件基金会的开源项目,是一个流行的Java Servlet容器,用于部署和运行Java Web应用程序。...
### Tomcat 6.0 共享线程池配置详解 #### 一、引言 在探讨Tomcat 6.0共享线程池配置之前,我们先了解下什么是线程池以及为什么要在Tomcat服务器中配置共享线程池。线程池是一种用于管理多个线程并重用它们的技术,...
本篇文章将深入探讨Tomcat 8.0的源码,涵盖其核心组件、架构和关键功能。 1. **核心组件** - **Catalina**:Catalina是Tomcat的主要部分,负责Servlet和JSP规范的实现。它包含了部署描述符解析、请求处理和生命...
通过阅读和分析源码,我们可以深入理解Tomcat的架构设计、线程模型、请求处理流程等核心概念。 3. **Maven**:这是一个构建工具,用于自动化构建过程,包括编译、测试、打包、部署等。在Tomcat 8的源码中,Maven被...
1. **目录结构**:Tomcat源码的根目录包含了许多子目录,如`bin`(启动脚本)、`conf`(配置文件)、`webapps`(默认应用程序)、`work`(工作目录)等。了解这些目录的作用对于管理和调试Tomcat非常重要。 2. **...