Tomcat支持的四种线程模型

  描述
BIO

阻塞式IO,采用传统的java IO进行操作,该模式下每个请求都会创建一个线程,

适用于并发量小的场景

NIO 同步非阻塞,比传统BIO能更好的支持大并发,tomcat 8.0 后默认采用该模式
APR tomcat 以JNI形式调用http服务器的核心动态链接库来处理文件读取或网络传输操作,需要编译安装APR库
AIO 异步非阻塞,tomcat8.0后支持

配置方法:在tomcat conf 下找到server.xml

BIO:  protocol =" org.apache.coyote.http11.Http11Protocol"

NIO: protocol ="org.apache.coyote.http11.Http11NioProtocol"

AIO: protocol ="org.apache.coyote.http11.Http11Nio2Protocol"

APR: protocol ="org.apache.coyote.http11.Http11AprProtocol"


BIO线程模型:

Tomcat支持的四种线程模型_第1张图片

1. Http11Protocol组件,是HTTP协议1.1 版本的抽象,它包含客户端连接、接收客户端消息报文、报文解析处理、对客户端响应等整个过程。它主要包含JIoEndpoint组件和Http11Processor,启动时,JIoEndpoint组件内部的Acceptor组件将启动某个端口的监听,一个请求到来后将被扔进线程池Executor,线程池进行任务处理处理,处理过程中将通过Http11Processor组件对HTTP协议解析并传递到Engine容器继续处理。

2.Mapper组件,可以通过请求地址找到对应的servlet

3.CoyoteAdapter组件,将一个Connect和Container适配起来的适配器。

JIoEndpoint组件

Tomcat支持的四种线程模型_第2张图片

Tomcat支持的四种线程模型_第3张图片

Tomcat支持的四种线程模型_第4张图片

Tomcat支持的四种线程模型_第5张图片

Tomcat支持的四种线程模型_第6张图片

Tomcat支持的四种线程模型_第7张图片

Tomcat支持的四种线程模型_第8张图片

Tomcat支持的四种线程模型_第9张图片

NIO线程模型:

Tomcat支持的四种线程模型_第10张图片

Tomcat支持的四种线程模型_第11张图片

Tomcat支持的四种线程模型_第12张图片

Tomcat支持的四种线程模型_第13张图片

Tomcat支持的四种线程模型_第14张图片


Tomcat支持的四种线程模型_第15张图片

你可能感兴趣的:(tomcat支持的四种线程模型,tomcat)