在mybatis3的源码里,涉及到了许多一级缓存二级缓存的点,其中mybatis的开发者们专门下设了cache包来存放一些关于缓存的类,使用到的是装饰器模式开发了不同功能的缓存:
其中在BlockingCache类涉及到了很多并发编程的内容:
之前的源码中的map的值是ReentrantLock
该类实现了cache接口的getObject方法,该方法如下:
该方法的acquireLock和releaseLock是核心:
可以很清晰看见加锁和释放锁的逻辑。
mybatis的cache模块的并发问题处理
最新推荐文章于 2022-02-21 09:54:28 发布