`

jetty源码概览

阅读更多

jetty启动时,会执行org.mortbay.jetty.Server.doStart()方法,Server其实就是jetty容器的抽象,doStart()方法会依次启动线程池QueuedThreadPool, handler(处理具体的客户端请求),connectors(监听浏览器请求并把他作为job加入到线程池后续处理)

线程池中有两类线程

第一种是acceptor线程,两个acceptor线程(cpu核心数)持续运行,此线程用来监听客户端请求,主要通过调用connector来完成,具体代码在方法org.mortbay.io.nio.SelectorManager.SelectSet.doSelect(),此方法实现是典型的nio server实现,

                			else if (o instanceof SocketChannel)
                			{
                				final SocketChannel channel=(SocketChannel)o;

                				if (channel.isConnected())
                				{
                					key = channel.register(selector,SelectionKey.OP_READ,null);
                					SelectChannelEndPoint endpoint = newEndPoint(channel,this,key);
                					key.attach(endpoint);
                					endpoint.dispatch();
                				}
 

此方法有一段这样的代码,是将客户端的socketchannel加入线程池,这就是线程池中第二种线程

被dispatch到线程池如下

 

 

 

 

总结下:

jetty启动创建QueuedThreadPool,handler,connector

QueuedThreadPool里面会放入acceptor线程同时初始化其他用来处理后续具体请求的线程,也就是执行handler

acceptor线程最先开始运行,初始化服务端的ServerSocketChannel在connector中,然后接受客户端SocketChannel并放入线程池,由业务线程交由handler处理下去

分享到:
评论

相关推荐

    Jetty源码分析.pdf

    ### Jetty源码分析知识点概览 #### 一、Jetty简介与特点 - **Jetty**是一款**100%纯Java编写**的轻量级Web服务器与Servlet容器,与Tomcat等其他流行的Web服务器相比,Jetty以其**体积小、启动快**而著称。 - **...

    一个完整的网上书店源码,jsp+servlet

    以上是基于“网上书店+jsp+servlet”的项目概览,实际的源码会包含更多细节,如具体的数据库查询语句、业务逻辑代码、JSP页面结构等。通过学习和分析这样的项目,开发者可以提升Web开发技能,更好地理解Web应用的...

    SpringMVC源码分析.md

    ### SpringMVC源码分析概览 #### 一、JavaWeb与Servlet基础知识 在深入了解SpringMVC源码之前,我们首先需要对JavaWeb的基础概念进行简单的回顾。JavaWeb的核心是Servlet,这是一种运行在服务器端的应用程序接口...

    hadoop 源码分析全

    #### 二、Hadoop生态系统概览 Hadoop不仅仅是一个单一的技术组件,而是一个包含了多个子项目和技术的完整生态系统。其中,HDFS和MapReduce是两个最核心的部分,构成了Hadoop的基础。HDFS负责存储大量数据,而...

    课设毕设基于SpringBoot+Vue的校友社交系统A LW+PPT+源码可运行.zip

    3. **内嵌式Servlet容器**: SpringBoot支持内嵌Tomcat、Jetty等服务器,无需额外部署,直接运行主类即可启动应用。 **Vue.js** Vue.js是一个轻量级的前端JavaScript框架,常用于构建用户界面。Vue的核心库专注于...

    基于springboot的智能家居系统源码数据库.doc

    ### 基于SpringBoot的智能家居系统源码数据库知识点概览 #### 一、项目背景与意义 在当今数字化时代,随着计算机技术的飞速发展和社会科技的进步,人们的日常生活正逐渐被智能化产品所包围。智能家居作为未来家庭...

    基于springboot的酒店管理系统源码数据库.doc

    ### 基于SpringBoot的酒店管理系统源码数据库知识点概览 #### 一、项目背景与意义 随着社会经济的快速发展及信息技术的进步,人们的生活方式发生了显著的变化。特别是在旅游业日益兴盛的今天,酒店作为出行必不可...

    基于springboot的大学生科创项目在线管理系统源码数据库.zip

    2. 内嵌Web服务器:如Tomcat、Jetty,无需额外打包部署。 3. 健康检查:提供Actuator模块,可以监控应用的健康状况和性能指标。 4. 精简的starter:提供一系列starter pom,简化Maven依赖管理。 三、SSM框架介绍 1....

    基于springboot的实习管理系统源码数据库.doc

    ### 基于SpringBoot的实习管理系统源码数据库知识点概览 #### 一、系统概述与背景 随着信息化管理行业的迅速发展,计算机及互联网技术在日常生活中扮演着越来越重要的角色。实习管理系统作为其中的一种应用,旨在...

    基于springboot的学生宿舍管理系统源码数据库.doc

    ### 基于SpringBoot的学生宿舍管理系统源码数据库知识点概览 #### 一、项目背景与意义 随着互联网技术的迅速发展与普及,信息化管理已成为提高工作效率、减少人力成本的有效手段之一。对于学校而言,学生宿舍作为...

    基于springboot的校园管理系统源码数据库.doc

    ### 基于SpringBoot的校园管理系统源码数据库知识点概览 #### 一、项目背景与意义 在当今数字化时代,随着科技的迅速发展,各领域都在积极利用现代技术手段来提升自身的竞争力和服务水平。校园管理系统也不例外,...

    基于springboot搭建的疫情管理系统源码数据库.doc

    ### 基于SpringBoot搭建的疫情管理系统源码数据库知识点概览 #### 一、项目背景及意义 在快速发展的现代社会背景下,信息技术的不断进步推动了数据管理方式的根本变革。传统的人工数据处理逐渐被软件化的自动管理所...

    基于springboot的医药管理系统源码数据库.doc

    ### 基于SpringBoot的医药管理系统源码数据库知识点概览 #### 1. 绪论 ##### 1.1 选题背景 随着信息技术的迅速发展,特别是计算机网络技术的进步,越来越多的传统业务开始借助现代信息技术进行管理和优化。在医疗...

    基于springboot的图书管理系统源码数据库.docx

    ### 基于SpringBoot的图书管理系统源码数据库知识点概览 #### 一、项目背景与意义 在当今信息化时代背景下,许多传统行业都在寻求利用计算机技术实现数字化、信息化转型。传统的图书管理方式多依赖人工登记,这种...

    基于ssm+mysql任务发布接收平台源码数据库论文.docx

    1.2.3 运行环境规定:平台应能在常见的Java运行环境如Tomcat或Jetty上运行,操作系统不限,支持Windows、Linux等。 2. 软件分析与设计 2.1 App界面设计 2.1.1 系统主界面:提供用户登录、注册功能,展示系统公告,...

    基于springboot的在线互动学习网站源码数据库.doc

    - **嵌入式服务器**:SpringBoot支持内嵌Tomcat、Jetty等Web服务器,使得开发者无需额外配置服务器即可启动应用。 - **起步依赖**:SpringBoot提供了一系列的“起步依赖”来简化Maven或Gradle的依赖管理。 ##### ...

    课设毕设基于SpringBoot+Vue的学生综合测评系统A LW+PPT+源码可运行.zip

    3. **内嵌容器**: SpringBoot可以内嵌Tomcat或Jetty等Servlet容器,使得应用可以直接以jar形式运行,无需额外部署到外部服务器。 4. **Actuator**: 提供了健康检查、审计、指标收集等功能,帮助监控和管理应用程序。...

Global site tag (gtag.js) - Google Analytics