当前位置: 首页 > news >正文

做网站哪种编程语言最好网站优化网

做网站哪种编程语言最好,网站优化网,徐州专业做网站的,安康市汉滨区新闻前言 Servlet 3.0之前:HTTP请求由单一线程处理。Servlet 3.0之后:支持异步处理,提高系统吞吐量。 SpringBoot 异步接口实现方式 AsyncContext:Servlet层级,不常用。Callable:使用java.util.concurrent.C…
前言
  • Servlet 3.0之前:HTTP请求由单一线程处理。
  • Servlet 3.0之后:支持异步处理,提高系统吞吐量。
SpringBoot 异步接口实现方式
  1. AsyncContext:Servlet层级,不常用。
  2. Callable:使用java.util.concurrent.Callable
  3. WebAsyncTask:Spring封装的Callable,提供回调功能。
  4. DeferredResult:延迟结果设置,适用于结果生成可能在其他线程。
Callable 实现
  • Controller返回Callable<String>
  • 处理过程
    • Spring MVC调用request.startAsync()
    • 使用AsyncTaskExecutor在单独线程处理。
    • 释放Servlet容器线程,保持response状态。
    • Callable结果产生后,请求返回Servlet容器完成处理。
WebAsyncTask 实现
  • 特点:提供超时、错误和完成回调。
  • 示例
    @GetMapping("/webAsyncTask")
    public WebAsyncTask<String> webAsyncTask() {WebAsyncTask<String> result = new WebAsyncTask<>(30003, () -> "success");result.onTimeout(() -> {log.info("timeout callback");return "timeout callback";});result.onCompletion(() -> log.info("finish callback"));return result;
    }
    
DeferredResult 实现
  • 特点:结果可能在其他线程设置。
  • 示例
    @GetMapping("/testDeferredResult")
    public DeferredResult<String> testDeferredResult(){DeferredResult<String> deferredResult = new DeferredResult<>();deferredResultMap.put("test", deferredResult);return deferredResult;
    }
    
  • 处理过程
    • 保存DeferredResult
    • Spring MVC调用request.startAsync()
    • 应用程序在其他线程设置DeferredResult值。
线程池配置
  • 自定义线程池:提供异步请求使用的线程池。
  • 配置示例
    @Bean("mvcAsyncTaskExecutor")
    public AsyncTaskExecutor asyncTaskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(5);executor.setMaxPoolSize(10);executor.setQueueCapacity(10);executor.setThreadNamePrefix("fyk-mvcAsyncTask-Thread-");executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());executor.setWaitForTasksToCompleteOnShutdown(true);executor.setAwaitTerminationSeconds(30);executor.initialize();return executor;
    }
    
异步请求配置
  • 配置类FykWebMvcConfigurer实现WebMvcConfigurer
  • 超时时间设置configurer.setDefaultTimeout(60001);
使用异步请求的场景
  • 适用场景:请求中CPU大量时间处于休息状态。
  • 不适用场景:CPU持续高负荷运算。
结论

异步请求通过释放主线程提高吞吐量,但需合理使用以避免增加耗时。了解异步接口实现有助于优化SpringBoot应用性能。

http://www.ritt.cn/news/11913.html

相关文章:

  • app软件制作公司排名seo综合查询站长工具关键词
  • 外贸建设网站制作长沙seo霜天博客
  • 提升学历的正规平台seo关键词优化哪个平台好
  • 品牌网站建设小蝌蚪a网站热度查询
  • 网站广告图片设计教程在线代理浏览网页
  • 网页设计实训报告1500北京搜索引擎优化主管
  • 德阳建设局网站首页免费com网站域名注册
  • 广州越秀区租房子多少钱一个月seo排名系统源码
  • 学校门户网站建设工作软文写作是什么意思
  • 东莞网站建设做网站安徽seo人员
  • 泰州做网站公司河北关键词seo排名
  • 商城网站如何优化杭州网站关键词排名优化
  • 郑州网站服务公司免费加精准客源
  • 为博彩做网站日入两万2024年新闻摘抄十条
  • 专业建站公司加盟精准ip地址查询工具
  • wordpress js篡改南昌关键词优化软件
  • 右键网站 选择添加ftp站点兰州网站seo
  • 帝国cms做笑话网站谷歌广告推广怎么做
  • 网站建设的想法和意见被忽悠去做网销了
  • 企业网站制作托管技术培训平台
  • 网站运营与推广计划书北京百度搜索排名优化
  • 网站做阿里妈妈流量网站
  • 山西省城乡住房和建设厅网站首页百度平台推广联系方式
  • 南京网站制作招聘百度地图推广
  • 网站三合一建设百度霸屏推广一般多少钱
  • 最新网站开发价格权重查询
  • 大型网站开发流程郑州搜索引擎优化公司
  • 做公众号选择图片的网站网站怎么注册
  • 我的免费网是个什么网站seo搜索价格
  • wordpress如何添加注册登录站长工具seo综合查询论坛