视频直播系统源码,异步处理实现代码分析
视频直播系统源码,异步处理实现代码分析
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doget"); method3(request,response); } /** * 使用asyncContext执行异步请求 * @param request * @param response */ public void method1(HttpServletRequest request, HttpServletResponse response) { //获取异步上下文 AsyncContext asyncContext = request.startAsync(); //开启异步处理过程 asyncContext.start(() -> { //耗时处理 try { Thread.sleep(2000); //通过AsyncContext返回 respsonse asyncContext.getResponse().getWriter().write("Hello World1!"); } catch (Exception e) { e.printStackTrace(); } //异步处理完成 asyncContext.complete(); }); } /** * 使用自身线程池来执行异步请求 * @param request * @param response */ public void method2(HttpServletRequest request, HttpServletResponse response) { AsyncContext asyncContext = request.startAsync(); Runnable runnable = () -> { try { Thread.sleep(2000); asyncContext.getResponse().getWriter().write("Hello World2!"); } catch (Exception e) { e.printStackTrace(); } asyncContext.complete(); }; new Thread(runnable).start(); } /** * 使用asyncContext.dispath()来重新提交请求 * @param request * @param response */ public void method3(HttpServletRequest request, HttpServletResponse response) { Object result = request.getAttribute("result"); if(result==null) { AsyncContext asyncContext = request.startAsync(); Runnable runnable = () -> { try { Thread.sleep(2000); // request.setAttribute("result", "Hello World3!"); } catch (Exception e) { e.printStackTrace(); } asyncContext.dispatch(); }; new Thread(runnable).start(); }else{ try { response.getWriter().write(result.toString()); } catch (Exception e) { e.printStackTrace(); } } }
上面列了AsyncContext使用的三种方式:
- commit(): 标识异步事件的结束,http通道关闭
- 使用AsyncConext线程池执行任务
- 使用业务线程池执行任务
- dispath(): 通知servlet容器,重新发起请求(doService()会收到两次请求)
以上就是视频直播系统源码,异步处理实现代码分析, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2023-03-16 视频直播app源码,Swift动态修改Icon,消除系统弹窗
2023-03-16 在线直播源码,npm设置镜像的方法 可切换
2023-03-16 直播平台源代码,数字化大屏地图轮播的实现echarts
2022-03-16 一对一直播源码,实现一个简单的登录界面
2022-03-16 app直播源码,自定义两种Activity切换动画实现
2022-03-16 直播平台开发,实现点击跳转外部链接时的跳转步骤