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

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


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

 

当前对象图如下。


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

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

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


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

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

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

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


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

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


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

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


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

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


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

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

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

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

   2)、startInternal()


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

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

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

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


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

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

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

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

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

相关文章:

  • 2021-06-10
  • 2021-12-17
  • 2021-06-23
  • 2021-07-15
  • 2021-04-15
  • 2021-08-05
  • 2022-12-23
猜你喜欢
  • 2021-11-13
  • 2021-07-28
  • 2021-10-27
  • 2021-06-19
  • 2022-01-19
  • 2021-12-19
  • 2021-07-21
相关资源
相似解决方案