每日学习-01

问题一:无限续期导致死锁怎么办

问题二:maven怎么用的,有啥功能

问题三:布隆过滤器知道原理吗?

问题四:mybatis只通过实现接口就可以运行的原因

问题五:看门狗机制

开始分析:

问题一:无限续期导致死锁怎么办

答:一般指 Redisson 分布式锁看门狗无限续期造成死锁。

第一,加锁时指定锁的最大过期时间leaseTime,会关闭自动续期,锁到时间自动释放,从根源防止无限续期;

第二,业务代码放到 try-finally,释放锁前判断是当前线程持有才解锁,避免漏释放;

第三,如果业务耗时不确定要用看门狗,就给业务加执行超时检测,线程阻塞卡死就终止续期; 第四,线上兜底方案:定时任务定期清理长时间未释放的僵尸锁,紧急情况直接删除 Redis 锁 key 恢复。

如果是本地 Lock 死锁,就用带超时的 tryLock,并且统一线程获取锁的顺序。

问题二:maven怎么用的,有啥功能

答:核心功能:

第一是依赖管理,通过 pom.xml 配置引入第三方 jar 包,自动下载、解决包冲突,不用手动导包; 第二是项目标准化构建,统一项目目录结构;

第三是项目生命周期管理,提供 clean、compile、test、package、install、deploy 等一套命令,完成清理、编译、测试、打包、上传私服全流程; 第四是多模块拆分,适合大型项目做分模块开发。

简单使用流程:先创建 Maven 项目,编写 pom.xml 配置依赖和插件;然后用命令执行构建,比如 package 打 jar/war 包;可以配置本地仓库、远程私服,还能自定义插件拓展构建逻辑。

问题三:布隆过滤器知道原理吗?

布隆过滤器底层是位数组 + 多个哈希函数

  1. 存入数据:一个元素经过多个不同哈希函数算出多个下标,把位数组对应下标全部置 1。
  2. 查询数据:同样哈希算出下标,只要有任意一位是 0,元素一定不存在;全为 1 才判断可能存在。
  3. 特点 :不存在误判,但存在假阳性(有可能把不存在的元素误判为存在),无法删除元素;优点是占用内存极小、查询速度快,Redis 里常用来做缓存穿透解决方案。

问题四:mybatis只通过实现接口就可以运行的原因

MyBatis 仅定义接口不用写实现类就能运行,核心是动态代理,流程分这几步:

  1. 启动时解析 Mapper 接口和对应的 XML / 注解 SQL,把接口全限定名当作 key,把 SQL、参数、返回值等元数据封装存进配置;
  2. 调用getMapper()时,MyBatis 底层用 JDK 动态代理生成这个 Mapper 接口的代理对象;
  3. 调用接口方法时,会走到代理类的invoke拦截方法;
  4. 拦截器根据当前调用的接口方法,匹配提前缓存好的 SQL 信息,封装参数,执行 JDBC 数据库操作,最后把结果映射返回,我们就不用手写接口实现类了。

补充一句:因为是 JDK 动态代理,所以 Mapper 必须是接口,不能用普通类

问题五:看门狗机制

我说下 Redis 分布式锁里的看门狗机制:

  1. 触发条件:我们调用lock()不加锁最大过期时间 leaseTime 时,Redisson 会自动开启看门狗;锁默认有效期 30 秒。
  2. 工作逻辑:后台起一个定时线程,每隔 10 秒检查,如果当前业务线程还持有锁,就自动把锁过期时间重置回 30 秒,实现自动续期,防止业务没执行完锁提前释放。
  3. 停止条件:只要业务线程正常走完、手动解锁,或者线程卡死终止,续期任务就会停止,锁到期自动删除。
  4. 缺点:如果业务线程卡死阻塞,看门狗会无限续锁,造成死锁;解决办法就是手动指定 leaseTime,关闭看门狗,给锁设置最大存活时长兜底。
相关推荐
旺仔丶歪歪乐1 小时前
英语启蒙APP分级体系拆解:本土课标分级与海外原版分级有什么区别
人工智能·学习·web app
xian_wwq1 小时前
【学习笔记】开源 vs 闭源:Llama / Qwen / DeepSeek 生态博弈(34/35)
笔记·学习·开源
振浩微433射频芯片1 小时前
5个IO控制20个LED?查理复用实战拆解
网络·单片机·物联网·学习·智能家居
kitsch0x973 小时前
论文学习_MalSkillBench: A Runtime-Verified Benchmark of Malicious Agent Skills
学习
Z5998178413 小时前
c#软件开发学习笔记--分组、游标与临时表、分页
笔记·学习·c#
治愈系贝壳3 小时前
ARM ---day1
linux·arm开发·学习
qdprobot4 小时前
齐护AIOT科创社团学习套件桌面总程AiTall V3版人工智能Mixly图形化编程AI小智物联网AI具身智能应用椴木科创作品
人工智能·物联网·学习
遇乐的果园4 小时前
前端学习笔记-vue列表处理
前端·vue.js·学习
小弥儿4 小时前
GitHub今日热榜 | 2026-07-16:AI知识库与反AI味设计成今日双主线
人工智能·学习·github