系统公共模块重复读取数据库,如:产品分类导航。使用简单代码模拟缓存方式。 经过三次修改优化过程,方便小伙伴阅读。 一、增加缓存方法: 二、经测试,方法同步,造成锁粒度过大,优化如下: 三、synchronized 如存在并发,导致多次初始化。 改为Lock,二次判断,并发初始化时排队机制,后者线程可避免初始化。