我有一个任务可能持续100毫秒,我想在处理请求开始时启动,并在以后需要时抓取结果。我不希望以此数量阻止和扩展每个请求。
在一个vanilla Java应用程序中,我创建一个ExecutorService
并使用Callable<T>
将其作为Future<T>
运行,以便稍后获得结果。
由于Tomcat维护自己的线程池,我应该尝试与它协调吗?换句话说,我的ExecutorService池是否与Tomcat的线程竞争?这是一个问题吗?以某种方式捎带到Tomcat的游泳池是否有优势?
任何有类似经历的人的建议都会受到赞赏。此外,我对添加Spring等其他依赖项不感兴趣。
答案 0 :(得分:3)
我应该尝试与之协调吗?
不,Tomcat池专用于Tomcat
换句话说,我的ExecutorService池是否与Tomcat的线程竞争?
完全没有。这是你的游泳池。
这是一个问题吗?以某种方式捎带到Tomcat的游泳池是否有优势?
一旦不生成数百万个线程,维护自定义应用程序池就没有问题。只需确保提供具有守护程序状态的线程,以便tomcat关闭脚本不会抱怨'无法阻止Tomcat'