异步流程与使用步骤

接收到 request 请求之后,由tomcat 工作线程从 HttpServletRequest 中获得一个异步上下文
AsyncContext 对象,然后由 tomcat 工作线程把 AsyncContext对象传递给业务处理线程,同时tomct工作线程归还到工作线程池,这一步就是异步开始。在业务处理线程中完成业务逻辑的处理,生成response 返回给客户端。在 Servlet3.0 中虽然处里请求可以实现异步,但是InputStream和OutputStream的IO操作还是阻塞的,当数据量大的equest body 或者 response body 的时候,就会导致不必要的等待。

         从servlet3.1以后增加了非阻塞10,需要Tomcat8.x支持。
et3的异步使用步骤
1.声明Servlet,增加 asyncSupported属性,开启异步支持。
2.通过request获取异步上下文AsyncContext。
3. 开启业务逻辑处理线程,并将AsyncContext传递给业务线程。
4. 在异步业务逻辑处理线程中,通过asyncContext 获取request和response处理对应的业务。
5. 业务逻辑处理线程处理完成逻辑之后,调用AsyncContext 的 complete 方法。asyncContext.complete();从而结束该次异步线程处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值