我们与同事们讨论了如何在Java中使用Web应用程序中的线程。
他们的观点是,不建议在Java Web应用程序中使用线程,因为它们不受容器管理。 一般来说,我很好,因为线程可能会干扰容器。但是,如果它不是Java EE应用程序而是简单的servlet-app,那么应该使用什么而不是它?
答案 0 :(得分:9)
在webapp中使用线程本身并不是问题。这取决于您使用它们的原因和方式。特别是,如果您有1000个用户,并为每个用户启动一个线程,那么您将使JVM陷入困境。
但是如果针对特定的,减少的用户和用例集启动线程,并且如果使用线程池来限制此类线程的数量,则不应该有任何问题。了解你正在做的事情非常重要。
另外,请确保不要将HttpServletRequest或HttpServletResponse对象传递给这样的线程,因为它们并不意味着被多个并发线程使用,并且一旦处理完请求就不再使用它们。