首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java线程在面向Internet的Java web应用中的应用

Java线程在面向Internet的Java web应用中的应用
EN

Stack Overflow用户
提问于 2017-11-23 16:17:13
回答 2查看 94关注 0票数 0

我一直在使用多个最终用户同时使用的Strurts、Spring、JSF、Hibernate等开发面向高可用性互联网的Java web应用程序。然而,我从未见过与线程或多线程相关的代码,那么并发是如何实现的呢?

当我参加面试时,人们会问很多与多线程相关的问题。如果线程真的如此重要,那么为什么我的应用程序中没有一个线程从未使用过。

需要你的帮助来理解实时web应用程序中线程的真正需求。

EN

回答 2

Stack Overflow用户

发布于 2017-11-23 16:29:44

为什么我在web应用程序开发过程中从来没有遇到过任何与线程相关的事情?

在web应用程序中,线程由servlet容器或JEE服务器自动管理(如@Berger所述)。它们具有合理的默认设置,使它们能够“开箱即用”。

在典型的web应用程序环境中,线程是如何处理的?

对web应用程序的每个请求都由单个线程处理。例如,如果10个用户同时向服务器发送请求,则服务器将有10个线程同时运行。

servlet容器或JEE服务器维护一个线程池。当一个请求进入时,一个线程被分配给该请求来处理它。当请求完成时,线程被释放回池中-准备分配给新的请求。

为什么是线程池?

在web应用程序环境中,请求是多的、短的和异步的。为每个请求创建一个新线程并将其关闭会导致相当多的开销。这就是为什么要预先创建一堆线程--线程池--来解决开销问题。

票数 1
EN

Stack Overflow用户

发布于 2017-11-23 17:45:00

在现实世界中,应用服务器在幕后使用线程为用户服务,request.That就是为什么服务器可以同时为多个用户服务的原因。例如,Web服务器是指处理大量来自远程源的短任务的数据库服务器。请求以某种方式到达服务器,这可能是通过诸如HTTP、FTP之类的网络协议。无论请求是如何到达的,在服务器应用程序中,通常每个单独任务的处理都是短暂的,并且请求的数量是短暂的。要服务的large.One模型是在每次请求到达时创建一个新线程,并在新线程中服务请求,缺点是

代码语言:javascript
复制
1.thread-per-request approach is that the overhead of creating a new thread for each request is significant and 

2. Creating too many threads in one JVM can cause the system to run out of memory or thrash due to excessive memory consumption

另一种模型是使用线程池。

nodejs和play frame等服务器使用单线程事件循环来处理不同用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47450566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档