09 2021 档案
摘要:在看canal源码时发现一个有趣的锁实现--BooleanMutex 这个锁在canal里面多处用到,比如系统初始化/授权控制,没权限时阻塞等待,有权限时所有线程都可以快速通过;还有canal客户端在使用集群模式(ClusterCanalConnector)连接服务端中做高可用的时候,它用来控制只有
阅读全文
摘要:ReentrantLock锁的实现是基于AQS实现的,所以先简单说下AQS: AQS是AbstractQueuedSynchronizer缩写,顾名思义:抽象的队列同步器,它是JUC里面许多同步工具类实现的核心 其实简单来说AQS有两个核心,一个是volatile修饰的int类型state,这个是判
阅读全文