我需要扩展对Tomcat的调用,有人建议在内部启动线程。如果有人需要这样做,他们会想出什么解决方案?
我需要扩展对Tomcat的调用,有人建议在内部启动线程。如果有人需要这样做,他们会想出什么解决方案?
请检查是否有一种方法可以从Tomcat获取容器管理的线程。WebLogic和WebSphere支持commonj.WorkManager,它允许您在容器管理的线程上调度工作。Spring也可以使用commonj,但我不确定Tomcat上是否支持此功能。
你的问题有些含糊不清。Tomcat本身已经使用线程池来处理HTTP请求。你可以通过Tomcat配置增加线程数 - 可以在Tomcat wiki上寻找相关信息。
如果你想在代码中启动线程,我建议阅读Java 5引入的java.util.concurrent API。还应该阅读《Java并发编程实战》,它是关于这个主题的权威著作。
除非你有非常特定的需求,否则不应该从Web应用程序中启动线程。如果没有更多关于你的问题的细节,很难确定这是否是解决问题的正确方法。
你可能想看一下Quartz,它是一个完整的开源作业调度系统,可以与几乎任何J2EE或J2SE应用程序集成或并行使用。
正如其他人所问,您应该更详细地说明您想要完成的目标。
否则,Tomcat 使用线程池。增加线程池中的线程数。使用更新版本的 Tomcat-- 6.x。使用 Java 6.0_10。如果需要,可以使用分析器调整应用程序并调整 JVM 设置(如果需要)。
J2EE 对于管理多线程的抽象是JCA。特别要看看 WorkManager 和 Work 类。还可以参考this article。Spring 也提供了基于 JCA 的工作管理器抽象。