如何在StandardContext类中使用名为bindThread的方法?

时间:2013-10-12 04:31:43

标签: multithreading tomcat7 contextclassloader

因为我发现在Tomcat 7源代码中名为bindThread()的类中多次调用名为StandardContext的方法,特别是在名为startInternal()的方法中。我不明白为什么需要多次调用这个方法。

实际上bindThread()设置了线程上下文类加载器,但我不知道为什么仍然多次在bindThread()调用中使用unbindThread()startInternal()方法对。

1 个答案:

答案 0 :(得分:0)

Web应用程序启动和停止通常在容器类加载器生效时发生。启动(和停止)过程的某些部分(例如,触发应用程序侦听器)需要在Web应用程序类加载器生效的情况下进行。 bindThread()和unbindThread()分别是切换到Web应用程序类加载器并再次返回的方法。启动和停止的各种元素必须按特定顺序发生,因此必须在类加载器之间来回切换。