黑马程序员-java缓存系统关键代码
来源:互联网 发布:淘宝客服一天接待人数 编辑:程序博客网 时间:2024/06/03 13:01
----------------------android培训、java培训、期待与您交流! ----------------------
java 的多线程感觉是最难掌握的。又一次的复习了多线程。写了一个缓存数据的demo废话不多说看代码。
/** * 读写锁 缓存数据 */private static Map<String, Object> cache = new HashMap<String, Object>();private ReadWriteLock lock = new ReentrantReadWriteLock();private volatile boolean isEmpty = true;Object value = null;public Object get(String key){try {lock.readLock().lock();value = cache.get(key);if(value == null){lock.readLock().unlock(); /** 如果多个线程都走到这里那个都解读锁 有个上写锁。写入数据后加上读锁释放写锁*/lock.writeLock().lock();/** 有一个线程加上写锁开始写入数据*/if(isEmpty){ /** 后面的线程检查数据已经有了就直接上读锁 释放写锁*/value = "aaa";cache.put(key, value);isEmpty = false;}lock.readLock().lock();lock.writeLock().unlock();}return value;} catch (Exception e) {e.printStackTrace();}finally{lock.readLock().unlock();}return value;}
- 黑马程序员-java缓存系统关键代码
- 《黑马程序员》 读写锁之缓存系统
- java 我行我素换购系统 关键代码
- 黑马程序员 java读写锁与缓存
- 黑马程序员---如何删除java缓存
- 黑马程序员------Java缓存—浅谈Memcached
- 黑马程序员-java-交通灯系统
- 黑马程序员--java交通管理系统
- 黑马程序员——Java关键子和基本数据类型
- 黑马程序员---交通灯管理系统-代码
- 黑马程序员---银行业务调度系统-代码
- 黑马程序员_交通灯系统代码学习
- 黑马程序员------进销存管理系统代码节选
- 黑马程序员 java中的构造代码块
- 黑马程序员-----java静态代码块总结*
- 黑马程序员-java-App代码混淆,反编译
- 黑马程序员-Java文件复制代码
- 黑马程序员-----java中构造代码块
- 内核里面fork的过程1
- HTML5中的标记方法
- 爱图谱二次开发时环境检测不通过的解决办法
- hdu 2045
- 作为开发者,你不应该害怕的8件事
- 黑马程序员-java缓存系统关键代码
- App开源项目收集和汇总:App Store地址和源代码
- hdu 4302 Holedox Eating
- houdini 技术
- 【新手教程】如何向App Store提交应用
- OpenCV学习:fastAtan2函数解密
- oprofile基本命令
- 软件编程21法则
- MFC的运行顺序