异步Servlet有什么好处

尼克·迪夫(Nick Div)

我正在阅读异步Servlet 3.1

据说当有很多耗时的操作要执行时,例如从数据库中获取较长的数据列表,发送请求的线程就被释放了。

我无法理解这里的好处,因为无论如何释放了负责该请求的初始线程,无论如何都会分配一个新线程来处理数据库连接和响应处理。

因此,异步servlet比我们之前拥有的每个请求模型线程更多的好处。

曼尼斯·马什瓦里

在这里分为两个部分:

  1. 异步servlet比我们先前拥有的每个请求模型的线程有何好处?这种模式已经死了,几乎所有的Java服务器都使用NIO,这使得这些服务器可以使用少数几个线程处理数百个连接。您可能也为您的应用服务器验证了这一点,您会惊讶地发现它确实使用了NIO :)。异步Servlet与每个线程的一个请求没有任何关系。
  2. 那么,为什么异步Servlet的:嗯,异步的Servlet允许原始请求完成的,无需等待异步任务完成(这是希望长期运行)。因此,远程客户端可以立即得到响应,并且他们可以根据需要执行其他操作。服务器稍后可以在线程之一中处理异步任务。这些异步操作通常在单独的线程池中完成,用于异步操作。用于处理客户端连接的线程池用于异步操作。

更新:如果我们已经在使用NIO线程池,那么为什么需要异步Servlet的更多详细信息,我前一段时间在http://manish-m.com/?p=996上的非阻塞IO上记下了我的笔记您也可以在http://manish-m.com/?p=915(尤其是此页面上的IO Playground部分)上查看相关文章

NIO线程池用于处理多个连接请求它使用内核的非阻塞IO功能,因此少量线程可以与许多连接一起工作。

但是,从网络缓冲区读取数据的相同线程也执行“用户代码”(我们在Servlet中编写的代码)。Servlet容器的NIO框架可以处理接受客户端请求,但不能自行处理由我们编写的“阻止用户代码”。因此,如果我们编写一个耗时10秒的数据库查询,那么容器框架将无法自行异步处理它。我们将通过在servlet中编写任何阻塞代码来阻塞原始的NIO线程池。因此,我们需要显式地编写任何我们认为可能阻塞容器的请求线程的内容,作为Java EE中的Async servlet。

同样,当我们使用其他NIO框架(如Netty,MINA)时,则需要注意确保代码“不”阻塞处理网络连接的NIO线程。这通常是通过将这样长时间运行的任务卸载到另一个线程池中来实现的(这是您编写异步servlet时容器所做的事情)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Java

使用servlet 3.1异步io有什么真正的好处?

来自分类Dev

将异步脚本移到页面底部有什么好处?

来自分类Dev

将异步放在返回promise的函数中有什么好处?

来自分类Java

JCA有什么好处?

来自分类Linux

$有什么好处?猛扑

来自分类Java

Scala有什么好处?

来自分类Java

Struts有什么好处

来自分类Dev

在asp.net Web API控制器中使用异步方法有什么好处?

来自分类Dev

使控制器方法异步可以提高其性能吗?有什么好处?

来自分类Dev

异步功能有好处吗?

来自分类Dev

同步InputStream有什么好处?

来自分类Dev

学习Vim有什么好处?

来自分类Java

减小MaxPermSize有什么好处?

来自分类Dev

静态方法有什么好处?

来自分类Java

使用WeakReferences有什么好处?

来自分类Dev

指向指针有什么好处?

来自分类Dev

ImmutableObject属性有什么好处?

来自分类Dev

使用arrayWithCapacity有什么好处

来自分类Dev

自动变量有什么好处?

来自分类Dev

与将常规函数用作异步操作创建者相比,在redux中使用thunk中间件有什么好处?

来自分类Dev

带有角度http请求的异步管道的好处

来自分类Dev

在pyspark中注册udf有什么好处?

来自分类Java

立即向下广播有什么好处?

来自分类Dev

使用RWMutex代替Mutex有什么好处?

来自分类Dev

加密AWS RDS实例有什么好处

来自分类Java

双向约束视图有什么好处?

来自分类Dev

从函数返回任务有什么好处?

来自分类Java

使用QueudSynchronizer实现CountLatch有什么好处?

来自分类Javascript

angular.isdefined有什么好处?

TOP 榜单

热门标签

归档