lchl0388 发表于 2017-2-10 12:43:18

Tomcat源码解读--代码走读之(二十一的2-5)threadStart(四十二)

  调用当前方法的对象是StandardEngine,如下图。
  

 
  1、创建一个daemon线程进行启动,如下图,主要是更换classLoader进行container.backgroundProcess()。系统的classLoader为catalinaLoader在第二章提到过,应用的classLoader为WebappClassLoader。 

  

 
  2、系统的后台程序如下图。主要是判断是否为null和backgroundProcess的执行;fireLifecycleEvent(Lifecycle.PERIODIC_EVENT,null)的事件进行执行,取决于当前container的ls的listeners。
  

 
  3、应用的后台程序主要如下图。
  

 
(1)、进行ContainerBase的backgroundProcess。
(2)、进行periodicEvent(),如下图。主要是进行是否已经上传,和是否已经编译。
  

 
 
页: [1]
查看完整版本: Tomcat源码解读--代码走读之(二十一的2-5)threadStart(四十二)