07 2024 档案

摘要:1.原因 @Schedule定时任务和异步注解@Async使用的默认线程池时, 池中允许的最大线程数和最大任务等待队列都是Integer.MAX_VALUE. 2.解决 2.1、可以手动异步编排,交给某个线程池来执行。 首先我们先向Spring中注入一个我们自己编写的线程池,参数自己设置即可,我这里 阅读全文
posted @ 2024-07-29 10:07 佳沃 阅读(110) 评论(0) 推荐(0) 编辑
摘要:当方法中同时使用 @Transactional 与 @Async 时,事务是可以生效的。 @Transactional 调用 @Async 的方式,异步方法的事务是无法生效的。 @Async 调用 @Transaction 的方式,异步方法事务是可以生效的,需要注意的是调用方也是没有事务管理的。 阅读全文
posted @ 2024-07-22 15:54 佳沃 阅读(202) 评论(0) 推荐(0) 编辑
摘要:当线程A将level设置为99时,此时锁已经释放了,但是事务还没提交!!线程B此时可以获取到锁并进行查询,查询出来的level还是线程A修改之前的100,所以出现了并发问题。 解决方案 1、@Transactional单独一个方法 private Lock lock = new ReentrantL 阅读全文
posted @ 2024-07-18 16:24 佳沃 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一:toMap源码中重复key不会替换,会直接抛出异常 可用第三个参数解决,(new,old) -> new 二:value值不能为空,map最基本的特性,可以用Optional处理 Map<Integer, String> map = userList.stream() .collect(Coll 阅读全文
posted @ 2024-07-18 15:32 佳沃 阅读(191) 评论(0) 推荐(0) 编辑
摘要:注入器 package com.ruoyi.framework.interceptor; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.inject 阅读全文
posted @ 2024-07-15 15:25 佳沃 阅读(138) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示