tomcat accepter executor 流程原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Tomcat的Accepter-Executor流程原理如下:
Acceptor是一个独立线程,它不断地调用ServerSocketChannel的accept()方法来接收新的连接。

当有新的连接请求到来时,Acceptor会返回一个SocketChannel对象,并将其封装在一个PollerEvent对象中,然后将该对象压入Poller的队列中。

Poller也是一个独立运行的线程,底层就是一个Selector。

每个Poller线程可能同时被多个Acceptor线程调用来注册PollerEvent。

Poller不断地通过内部的Selector对象向内核查询Channel的状态,一旦可读就生成任务类SocketProcessor交给Executor去处理。

Executor负责处理SocketProcessor任务,执行与请求相关的操作,如解析请求、调用Servlet 容器处理请求、返回响应等。

以上就是Tomcat的Accepter-Executor流程原理。

需要注意的是,该流程是基于Java NIO(非阻塞IO)实现的,具有高性能、高并发的特点。

相关文档
最新文档