优惠券领取--Java电商

归纳一下修改后的逻辑: 1.查询缓存,如果缓存存在,返回结果 2.缓存不存在,查询数据库 3.争夺分布式锁 4.成功获得锁,再次判断缓存的存在 5.如果缓存仍旧不存在,把查询数据库的结果循环放入缓存 6.释放分布式锁 这种二次判断存在性的机制有一个专门的名字,叫做双重检测。该方法在线程安全的单例模式中也常常被用到。 几点补充: 1.文中所使用的分布式锁,其实并不是“正宗”的分布式锁,当线程争夺锁失
相关文章
相关标签/搜索