调用当前方法的对象是StandardEngine[Catalina],如下图。
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(),如下图。主要是进行是否已经上传,和是否已经编译。