会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
啊sa
博客园
首页
新随笔
联系
订阅
管理
2021年9月24日
canal源码之BooleanMutex(基于AQS中共享锁实现)
摘要: 在看canal源码时发现一个有趣的锁实现--BooleanMutex 这个锁在canal里面多处用到,比如系统初始化/授权控制,没权限时阻塞等待,有权限时所有线程都可以快速通过;还有canal客户端在使用集群模式(ClusterCanalConnector)连接服务端中做高可用的时候,它用来控制只有
阅读全文
posted @ 2021-09-24 11:17 阿阿sa
阅读(205)
评论(0)
推荐(1)
2021年9月17日
ReentrantLock基于AQS的公平锁和非公平锁的实现区别
摘要: ReentrantLock锁的实现是基于AQS实现的,所以先简单说下AQS: AQS是AbstractQueuedSynchronizer缩写,顾名思义:抽象的队列同步器,它是JUC里面许多同步工具类实现的核心 其实简单来说AQS有两个核心,一个是volatile修饰的int类型state,这个是判
阅读全文
posted @ 2021-09-17 14:37 阿阿sa
阅读(442)
评论(0)
推荐(0)
2021年8月13日
优雅的编码,使用Optional代替if-else
摘要: Optional是JAVA8引入的类,它其实是一个包装类,可以对所有对象进行包装, 包括null,这个特性使得我们编码可以优雅的解决空指针异常。 先编写一些测试类 class Student { private ClassRoom classRoom; public ClassRoom getCla
阅读全文
posted @ 2021-08-13 17:08 阿阿sa
阅读(1886)
评论(0)
推荐(0)
2021年8月5日
Lombok中@Data注解的坑
摘要: 开发遇到@Data注解的大坑 如果使用@Data注解,会默认重写hashcode和equals方法 那会遇到什么问题呢? 比如说: @Data public class DataTest { private int code; private String name; public DataTest
阅读全文
posted @ 2021-08-05 17:32 阿阿sa
阅读(1298)
评论(0)
推荐(1)
公告
点击右上角即可分享