我们与同事就在 Java 网络应用程序中使用线程展开了一场大讨论。
他们的观点是,不建议在 Java Web 应用程序中使用线程,因为它们不受容器管理。 一般来说,我对此没有意见,因为线程可能会干扰容器。但是,如果它不是 Java EE 应用程序而是一个简单的 servlet 应用程序,应该使用什么来代替它?
最佳答案
在 webapp 中使用线程本身不是问题。这仅取决于您使用它们的原因和方式。特别是,如果您有 1000 个用户,并且为这些用户中的每个用户启动一个线程,就会使 JVM 崩溃。
但是,如果线程很少启动,用于特定的、减少的用户和用例集,并且如果您使用线程池来限制此类线程的数量,则应该没有任何问题。了解您在做什么很重要。
此外,请确保不要将 HttpServletRequest 或 HttpServletResponse 对象传递给此类线程,因为它们不打算由多个并发线程使用,并且一旦请求已被处理,它们不应再被使用。
关于java - 不鼓励在 Web 应用程序中使用线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292941/