开发者社区> 问答> 正文

怎么理解双重检验锁

怎么理解双重检验锁

展开
收起
景凌凯 2020-04-24 23:31:52 824 0
1 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!
    • 缓存也用到双重锁校验,比如判断缓存是否存在, if( user == null ) 如果空,去查数据库,然后准备赋值的时候可能已经被更新过了,因此在赋值之前就需要再检查下if( user == null )。
    • 单例模式中经常看到,但是实际生产中也经常使用。
    Cache<Object, AtomicReference<?>> cache = cacheMap.get(method);
    
    if (cache == null) {
    
      synchronized (cacheMap) {
    
        cache = cacheMap.get(method);
    
      }
    
    }
    
    2020-04-24 23:32:24
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载