摘要: 在看canal源码时发现一个有趣的锁实现--BooleanMutex 这个锁在canal里面多处用到,比如系统初始化/授权控制,没权限时阻塞等待,有权限时所有线程都可以快速通过;还有canal客户端在使用集群模式(ClusterCanalConnector)连接服务端中做高可用的时候,它用来控制只有 阅读全文
posted @ 2021-09-24 11:17 阿阿sa 阅读(205) 评论(0) 推荐(1)
摘要: ReentrantLock锁的实现是基于AQS实现的,所以先简单说下AQS: AQS是AbstractQueuedSynchronizer缩写,顾名思义:抽象的队列同步器,它是JUC里面许多同步工具类实现的核心 其实简单来说AQS有两个核心,一个是volatile修饰的int类型state,这个是判 阅读全文
posted @ 2021-09-17 14:37 阿阿sa 阅读(442) 评论(0) 推荐(0)
摘要: Optional是JAVA8引入的类,它其实是一个包装类,可以对所有对象进行包装, 包括null,这个特性使得我们编码可以优雅的解决空指针异常。 先编写一些测试类 class Student { private ClassRoom classRoom; public ClassRoom getCla 阅读全文
posted @ 2021-08-13 17:08 阿阿sa 阅读(1886) 评论(0) 推荐(0)
摘要: 开发遇到@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)
点击右上角即可分享
微信分享提示