5

我们与同事就在 Java 的 Web 应用程序中使用线程进行了一次大讨论。

他们的观点是不建议在 Java Web 应用程序中使用线程,因为它们不是由容器管理的。一般来说,我可以接受,因为线程可能会干扰容器。但是,如果它不是一个 Java EE 应用程序而是一个简单的 servlet-app,那么应该用什么来代替它呢?

4

1 回答 1

10

在 webapp 中使用线程本身不是问题。这仅取决于您使用它们的原因和方式。特别是,如果您有 1000 个用户,并且为每个用户启动一个线程,那么您将让 JVM 崩溃。

但是,如果线程很少启动,对于特定的、减少的用户和用例集,并且如果您使用线程池来限制此类线程的数量,那么您应该没有任何问题。了解你在做什么很重要。

另外,请确保不要将 HttpServletRequest 或 HttpServletResponse 对象传递给这样的线程,因为它们不打算由多个并发线程使用,并且一旦处理了请求,它们就不应再使用了。

于 2012-07-02T11:52:55.633 回答