【发布时间】:2013-08-03 01:50:20
【问题描述】:
我有自己的构建 java web 应用程序的框架,并且在该框架内,我创建了自己的单例线程池执行器服务。因此,每个使用我的框架的 Web 应用程序都会在启动时创建 1 个线程池执行程序,供内部使用。
我的问题是:
- 假设我在同一个 Tomcat 中部署了 2 个 Web 应用程序,这 2 个线程池会相互干扰吗?
- 第一个网络应用程序的线程是否有可能从第二个网络应用程序访问线程池,反之亦然?
- 是否需要为驻留在单个 servlet 容器中的所有 Web 应用程序创建一个 Threadpool 服务,而不是为每个 Web 应用程序创建一个?
谢谢。
【问题讨论】:
-
将单例放入多线程 Web 应用程序是一个坏主意。我喜欢服务理念,但与其说是线程池不如说是应用程序的所有实例都可以“调用”以执行您在这些线程中执行的任何操作的资源。如果他们分离出异步线程,它会将工作与 Web 应用程序隔离开来,而不必考虑它。
标签: java multithreading jakarta-ee tomcat servlets