当前位置: 首页 > 知识库问答 >
问题:

理解web框架中的异步请求处理

程鸿畅
2023-03-14

在play,jersey,spring不同于具有池线程的典型多线程服务器。https://jersey.java.net/documentation/latest/async.html https://www.playframework.com/documentation/2.3.x/JavaAsync

一个线程正在侦听,并且在新线程中发生繁重的处理,此外,Web中的非阻塞请求不能与Java中的非阻塞IO进行比较,其中一个线程可以读取多个通道。

从服务器端的角度来看,非阻塞是什么意思。多线程服务器已经non-blocking.Is错了?

异步Web框架在多线程服务器(具有线程池)上的真正好处/用例是什么?一种可能是能够以某种方式保持HTTP请求活跃(如何?)

共有1个答案

屠和洽
2023-03-14

传统上,每个连接都需要一个线程。由于HTTP连接可以长期存在,因此这种方法无法维持太多并发用户。至少他们是这么说的。但在实践中,这对于java服务器来说似乎不是一个大问题;你总是可以投入更多的机器:)

在无阻塞的情况下,一个线程可以用于服务多个连接;一万不应该是个问题。因此,这种方法对于某些应用可能更具弹性。问题是,在非阻塞中编程有点困难。

 类似资料:
  • 问题内容: 我有ajax请求执行3个任务: 保存模型(数据库) 发电子邮件 提供成功或失败的消息。 因为此任务需要太多时间。用户可以等待长达20秒的响应(成功或失败的消息)。并且,如果用户关闭浏览器,则它停止在该用户当前处理的操作之一中。 这是糟糕的用户体验。 我希望用户将其数据提交给我的控制器,然后他将收到“成功或失败的消息”。并且该过程将完全在服务器端,并且它应该支持多个会话。 我怎样才能做到

  • Spring MVC 3.2开始引入了基于Servlet 3的异步请求处理。相比以前,控制器方法已经不一定需要返回一个值,而是可以返回一个java.util.concurrent.Callable的对象,并通过Spring MVC所管理的线程来产生返回值。与此同时,Servlet容器的主线程则可以退出并释放其资源了,同时也允许容器去处理其他的请求。通过一个TaskExecutor,Spring M

  • 本文向大家介绍springmvc处理异步请求的示例,包括了springmvc处理异步请求的示例的使用技巧和注意事项,需要的朋友参考一下 springmvc 3.2开始就支持servlet3.0的异步请求。平常我们请求一个controller一般都是同步的,如果在代码执行中,遇到耗时的业务操作,那servlet容器线程就会被锁死,当有其他请求进来的时候就会受堵了。 springmvc3.2之后支持异

  • 我是webflux的新手,无法找到正确的材料来继续实现。 null

  • 本文向大家介绍解读PHP的Yii框架中请求与响应的处理流程,包括了解读PHP的Yii框架中请求与响应的处理流程的使用技巧和注意事项,需要的朋友参考一下 一、请求(Requests) 请求: 一个应用的请求是用 yii\web\Request 对象来表示的,该对象提供了诸如 请求参数(译者注:通常是GET参数或者POST参数)、HTTP头、cookies等信息。 默认情况下,对于一个给定的请求,你可

  • 本文向大家介绍Android最基本的异步网络请求框架,包括了Android最基本的异步网络请求框架的使用技巧和注意事项,需要的朋友参考一下  本篇文章我们来一起写一个最基本的Android异步网络请求框架,借此来了解下Android中网络请求的相关知识。由于个人水平有限,文中难免存在疏忽和谬误,希望大家可以指出,谢谢大家。 1. 同步网络请求     以HTTP的GET请求为例,我们来介绍一下An