博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用读写锁模拟cahce
阅读量:6005 次
发布时间:2019-06-20

本文共 826 字,大约阅读时间需要 2 分钟。

hot3.png

import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class CacheDemo { private Map
 cache = new HashMap
(); public static void main(String[] args) {  // TODO Auto-generated method stub } private ReadWriteLock rwl = new ReentrantReadWriteLock(); public  Object getData(String key){  rwl.readLock().lock();  Object value = null;  try{   value = cache.get(key);   if(value == null){    rwl.readLock().unlock();    rwl.writeLock().lock();    try{     if(value==null){      value = "aaaa";//实际是去queryDB();     }    }finally{     rwl.writeLock().unlock();    }    rwl.readLock().lock();   }  }finally{   rwl.readLock().unlock();  }  return value; }}

转载于:https://my.oschina.net/u/2009964/blog/401441

你可能感兴趣的文章
VSCode前端开发神器工具
查看>>
【PPT已更新】360互联网技术训练营第九期——360容器技术解密与实践
查看>>
Python轻量级数据分析库DaPy
查看>>
揭开react hook神秘面纱
查看>>
观察者模式与它在源码中的运用
查看>>
【Geek招募】
查看>>
java b2b2c SpringCloud电子商务平台
查看>>
asp.net清空页面上的所有TextBox
查看>>
beetl 和 shrio 结合
查看>>
关于任务栏管理器中映像名称消失不见
查看>>
Exchange 无法接收发送邮件
查看>>
年终奖
查看>>
相对/绝对路径,cd命令,mkdir/rmdir命令,rm命令
查看>>
OpenVAS in Metasploit
查看>>
TCl介绍
查看>>
repeater的几种用法
查看>>
【HTML5】DOMContentLoaded事件
查看>>
数据库之mysql(数据库编码问题)
查看>>
tomcat中web.xml各配置项的意义
查看>>
Linux下ftp+ssl实现ftps
查看>>