单个servlet容器中不止一个Singleton(Tomcat)

时间:2013-08-01 22:45:42

标签: java multithreading java-ee tomcat servlets

我有自己的构建java web应用程序的框架,在该框架内,我创建了自己的Threadpool执行器服务,它是singleton。因此,使用我的框架的每个Web应用程序将在启动时创建1个Threadpool执行程序,以便在内部使用。

我的问题是:

  1. 假设我在同一个Tomcat中部署了2个Web应用程序,那2个Threadpool会相互干扰吗?
  2. 来自第一个网络应用程序的线程是否有可能从第二个Web应用程序访问Threadpool,反之亦然?
  3. 我是否需要为所有驻留在单个servlet容器中的Web应用程序创建单个Threadpool服务,而不是为每个Web应用程序创建一个?
  4. 谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 否。 Web应用程序应该由Tomcat中的ClassLoader隔离,因此每个应该都有自己的单例实例。
  2. 只要#1的答案实际上没有,那么答案就是否定。
  3. 可能不是。
  4. 另外,我的理解是,作为一般规则,Java EE Web应用程序不应该启动新线程。