在mybatis3的源码里,涉及到了许多一级缓存二级缓存的点,其中mybatis的开发者们专门下设了cache包来存放一些关于缓存的类,使用到的是装饰器模式开发了不同功能的缓存:
其中在BlockingCache类涉及到了很多并发编程的内容:
之前的源码中的map的值是ReentrantLock 该类实现了cache接口的getObject方法,该方法如下:
该方法的acquireLock和releaseLock是核心:
可以很清晰看见加锁和释放锁的逻辑。
本文分享自 作者个人站点/博客 前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!