Tomcat源码解读--代码走读之(二十的2-4)connector.start(四十三)

  HTTP/1.1AJP/1.3,只是监听不同的端口,大体上都是相同的。下面介绍HTTP/1.1

HTTP/1.1如下图,connector继承了LifecycleBase,所以执行LifecycleBasestart方法。



 

 

当前对象图如下。



 

1、setStateInternal(LifecycleState.STARTING_PREP, null,false),因为connectorlslisteners0,所以没有动作执行。

2、startInternal(),代码在connector中。



 

1)、setState(LifecycleState.STARTING),因为connectorlslisteners0,所以没有动作执行。

2)、protocolHandler.start()(在十四章介绍过对象赋值),调用父类AbstractProtocolstart方法,主要是记录日志和执行endpoint.start()(在十五章介绍过对象赋值)。

   1)、执行JIoEndpoint的父类AbstractEndpointstart方法,也就是调用startInternal()方法,如下图。



 

    1))、createExecutor(),主要是创建一个线程池,并设置属性,设置名字,最小池子大小10个,最大池子大小200,存活时间60秒,优先级别5。如下图。



 

    2))、initializeConnectionLatch(),创建一个新的LimitLatch,构造参数为200赋值给connectionLimitLatch



 

    3))、开启接受者的线程。主要是启动一个线程监听socket的消息,进行处理。



 

     4))、开启管理超时的线程,主要是启动一个线程,处理超时socket

3)、mapperListener.start(),主要是调用父类LifecycleBasestart方法。

   1setStateInternal(LifecycleState.STARTING_PREP,null, false),因为MapperListenerlslisteners0,所以没有动作执行。

   2)、startInternal()



 

   1))、setState(LifecycleState.STARTING),因为MapperListenerlslisteners0,所以没有动作执行。

   2))、findDefaultHost(),主要是mapper.setDefaultHostName(defaultHost)defaultHostlocalhostserver.xml中的hostname)。

   3))、addListeners(engine)。主要是在container中增加containerListenerLifecycleListener,监听者为MapperListener



 

   4))、Container[]conHosts = engine.findChildren();,找到所有的host

   5))、registerHost(host),后续介绍。

  3)、setStateInternal(LifecycleState.STARTED,null, false),因为MapperListenerlslisteners0,所以没有动作执行。

3setStateInternal(LifecycleState.STARTED, null, false),因为connectorlslisteners0,所以没有动作执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值