异步servlet
来源:互联网 发布:使命召唤账号数据异常 编辑:程序博客网 时间:2024/05/18 02:41
servlet从3.0开始支持异步
使用异步servlet好处在于:
一个请求,服务器启动一个servlet线程处理,直到处理完毕,服务器回收此servlet线程,要知道,servlet线程是有限的,也就是说,这个请求会一直占用着该servlet线程。遇到高并发的时候,那么服务器的处理就会遇到瓶颈;如果异步servlet进行处理的话,一个请求过来,服务器启动一个servlet线程处理,在servlet线程启动一个工作线程,然后servlet线程马上返回,继续处理其它请求。而工作线程处理完毕后,会返回给请求。
优点在于:当处理高并发,大数据量操作时候,异步处理,可以让服务器快速的接收请求,相对于同步而言,降低servlet线程阻塞的可能。
使用xml配置
1. 需要添加3.0配置如下:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet> <description>**</description> <display-name>**</display-name> <servlet-name>**</servlet-name> <servlet-class>**/servlet-class> <async-supported>true</async-supported></servlet>
代码例子:
@Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws IOException { String asyn = req.getParameter("asyn"); if(StringUtils.isBlank(asyn)){ System.out.println("开始同步处理------"); log.error("开始同步处理------"); doSynWork(req,resp); }else{ System.out.println("开始异步处理======"); log.error("开始异步处理======"); context = req.startAsync(); executorService.execute(new Runnable(){ @Override public void run() { try { doSynWork(req,resp); } catch (Exception e) { e.printStackTrace(); }finally { context.complete(); } } }); } }
经过以上步骤,就可以实现servlet,当然也支持注解形式,这了就不再举例。
参考:http://www.infoq.com/cn/news/2013/11/use-asynchronous-servlet-improve
0 0
- 异步servlet
- 异步servlet
- 异步servlet
- 异步Servlet
- Servlet 3特性:异步Servlet
- Servlet 3特性:异步Servlet
- Servlet 3特性:异步Servlet
- Servlet 3特性:异步Servlet
- Servlet 3特性:异步Servlet
- 由异步servlet所想
- JavaEE6-异步Servlet Sample
- servlet3.0异步servlet
- Servlet异步处理数据
- Servlet3 -- Servlet异步处理
- Servlet-异步执行AsyncContext
- Servlet 3.0异步处理
- servlet异步调用
- Servlet的异步处理
- AngularJS表达式
- memcache安装部署
- Linux中的Apache服务查看和启动的方法
- win10系统PL2303串口连接出现错误的解决方案
- 使用NSURLSession,POST 上传多个文件,和文本内容(原理)
- 异步servlet
- 编程书单:十本Python编程语言的入门书籍
- jquery ajax 事件
- How-to: Install Apache Zeppelin on CDH
- 初入python
- Hbase 常用命令
- jsp和plsql和perl的关联
- redis和dll和ssh的关联
- jquery和apk和dos的关联