您现在的位置是:首页» windows系统» spring boot使用异步编程,springbootasync优先级

spring boot使用异步编程,springbootasync优先级

2024-07-13 08:31:46
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。一、 OOM错误程序报错:OutOfMemoryError:unable to create new native thre

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

一、 OOM错误

程序报错:OutOfMemoryError:unable to create new native thread

原因:

springboot-2.1.02. 1.0) 默认不适用于线索库,因为每次援引加速器,线索库就会产生新的线索。

Springboot@AsyncOOM的坑和源码分辨率。

解决:配置线程池

第一次@ configifation

Springbot-2. 1 是版本小于 0 的默认版本 。SimpleAsyncTaskExecutor这不是一个线性球池。 有一个 OOM 问题, 必须通过自定义的线性球池手动解决 。

方案一 Bean的定制线泳池不自定义异常处理

方案二:实现AsyncConfigurer在界面中重写 GetAssyncExculator () 和 GetAsyncUncaght DevisionHandler () 方法 。

一、二. yml方法(春灯-2).Version 0及以上,包括2.O.

SpringBoot-2. one. Verion 0 及以上允许使用默认自动组装的线索库,尽管默认参数不切实际,需要根据自身的服务器设置和业务需要,通过 yml 合理设定线索库参数。 官方工作交流和日程安排网络

Tips:如果需要隐喻异常处理器, 则无法使用默认的线索库。 引用文件机制 :备选方案二是实施Async Confuler接口。这是通过界定线索库来实现的。

二、异步失效

@Async在没有采取步骤的情况下,插入了说明。类或者方法这一类中的每一方法都是朝着正确方向迈出的一步。

如下表所示,注意到该步骤未生效的现场:不论该呼叫是本地电话还是同一类别中的跨类电话,同步化需要非同步技术,没有阶段生效,所有工作同步进行。

调用类型 发起调用方法 被调用方法 异步是否生效 备注
同类本地调用 异步1 异步2 是/否 第1步目前生效,第2步线用于执行第1步,第2步线保持不变。
同类本地调用 异步1 同步2 步骤1现已生效,同步1已经用天体步骤1线修改和完成。
同类本地调用 同步1 异步2 采用了一种主要的同步技术,使用主线调用并执行非同步 2。
跨类调用 异步1 异步2 是/是 步骤1已经生效,步骤2已经生效,步骤1和2分别使用不同的线条。
跨类调用 异步1 同步2 第1步现已启动,第1步正以1号天体线同步进行。
跨类调用 同步1 异步2 同步1条主行执行, 星际泳池执行天体2

测试代码可在吉特找到,地址可在文章结尾处找到。

三. 无法获得不对称方法回报的价值。

1. 直接返回:没有获得返回值。

结果

2、直接返回基本类型,报错AopInvocationExceptionAOP 不允许基本类型返回 。

结果

3、返回Future包装的类型AsyncResult<String>,通过future.get()通常可以获取检索值。

结果

Tips:@Async动态代理改进了底层。 可调用是原始逻辑。 使用可完成的未来来实施它 。AsyncResult对CompletableFuture返回结果进行了封装

四、异步异常处理

重写org.springframework.scheduling.annotation.AsyncConfigurer#getAsyncUncaughtExceptionHandler

测试方法

单元测试

结果

五、代码

https://gitee.com/qbhj/java-cases/tree/master/case-springboot-async 如果你弄错了,你可以留个其他场景没有覆盖的留言 继续写稿子!谢谢!

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com