java简单实现缓存的三种方法
来源:互联网 发布:wmf榨汁机 知乎 编辑:程序博客网 时间:2024/05/16 15:39
package com.tb.test;import java.util.HashMap;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class CachedTest {// 第一种方法 用hashmap存 然后加锁get方法// private HashMap<String, Object> cached = new HashMap<String, Object>();//// public synchronized Object get(String user){//Object value=cached.get(user);// if( value== null){//// value ="sss"; //实际上是从数据库中读取// cached.put(user, value);// }//// return value;// }// 第二种方法是用ConcurrentHashMap// private ConcurrentHashMap<String, Object> cached= new// ConcurrentHashMap<String, Object>();//// public Object get(String user){//Object value=cached.get(user);// if(value == null){//// value ="sss"; //实际上是从数据库中读取// cached.put(user, value);// }//// return value;////// }// 第三种 用hashmap 加读写锁private HashMap<String, Object> cached = new HashMap<String, Object>();private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();public Object get(String user) {readWriteLock.readLock().lock();Object value = null;try {value = cached.get(user);if ( value == null) {readWriteLock.readLock().unlock();readWriteLock.writeLock().lock();try {if(value == null){ value = "aa"; // 实际上从数据库读取 cached.put(user, value);}} finally {readWriteLock.writeLock().unlock();}readWriteLock.readLock().lock();}} finally {readWriteLock.readLock().unlock();}return value;}}
0 0
- java简单实现缓存的三种方法
- java几种缓存的简单实现
- java缓存的简单实现
- 简单的java缓存实现
- 简单的java缓存实现
- 一个简单的JAVA 缓存实现
- java实现简单的缓存机制
- <转>简单的java缓存实现
- java实现简单的缓存机制
- 一个简单的java缓存实现
- 简单的java缓存类实现
- Java实现一个简单的缓存
- java实现键盘输入的三种方法
- JAVA实现线程的三种方法
- Java实现多线程的三种方法
- Java多线程实现的三种方法
- Java多线程的三种实现方法
- 简单缓存的实现
- 语音增强原理之增益因子
- iOS性能优化技巧
- 2016全球大数据战略版图剖析(4):分析篇下
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 80端口被system占用
- java简单实现缓存的三种方法
- 【2002】学生姓名按字典排序
- 添物 不花钱学计算机及编程(预备篇)— 编译原理
- 2016全球大数据战略版图剖析(3):分析篇
- 1.常量
- leetcode-python 第一周
- jQuery插件-ajaxFileUpload
- 2016全球大数据战略版图剖析(2)
- 终于,开始追求梦了。