tomcat
2021-01-23 21:20:04 14 举报
tomcat源码流程
作者其他创作
大纲/内容
new poller[1].start....
init
从缓冲弄中拿processor或new
EndPoint
start
Connector
start之前会给在poller构造器中Selector.open()
NioEndPoint
while(1)遍历selector,有事件就processorKey
catalina
new poller[0].start
new AsyncTimeout守护线程().start()
load
new ThreadPoolExecutor
tomcat启动结束后,accept()进行接收请求,然后把请求注册到poller上,poller进行select(),接收到key后提交给worker进行processKey,也就是把线程形成一个processor进行后提交给worker线程池,在里面执行processor.process(),在process里调用service(),在里面调用连接器适配器CoyoteAdapter.service(),然后执行connector.getService().getContainer().getPipeline().getFirst().invoke(),在invoke()里最后一句又调用host.getPipeline().getFirst().invoke(),在他的最后一句又context.get.....,又调用wrapper.getPipeline()...wrapper.allocate()得到servlet,
ProtocolHandler
new Poller[ 2]守护线程数组
while(1){serverSocket.accept() }
Executor
AbstractProcessorLight
Context
Service
load加载xml
Engine
process()
Host
bootstrap
acceptor[0].start
for services.init
server
去线程池中执行processor.doRun
创建server
init()创建catalina对象
new Acceptor[]
0 条评论
下一页