java - 不鼓励在 Web 应用程序中使用线程吗?

标签 java multithreading web-applications

我们与同事就在 Java 网络应用程序中使用线程展开了一场大讨论。

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

最佳答案

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

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

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

关于java - 不鼓励在 Web 应用程序中使用线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292941/

相关文章:

java - 仅具有 gettable 的 JSF

java - 没有 SSL 的 CAS 4.x 和 Spring Security

java - 如何在java中使用switch case使字符相等?

java - 自定义 ImageView android

c++ - Google C++ 编码风格,没有异常(exception)规则。多线程呢?

apache - 如何在apache tomcat中查找Web应用程序的内存使用情况

configuration - 如何在tomcat启动时加载配置文件

c# - 如何修复 Task.Run 从 UI 线程抛出 STA 错误

android - 如何停止在线程池执行器 Android 中运行的任务

java - Spring MVC,两个配置实例而不是一个