用java5读写技术实现一个伪缓存技术
2015-03-28 11:12
393 查看
package com.example.cache;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
*
* @author 宋小亮
*
*/
public class Cache {
private Map<String,Object> cacheMap = new HashMap<>();
private ReadWriteLock rw = new ReentrantReadWriteLock();
public static void main(String[] args){
}
//获取数据
//缓存中的数据都保存在类似HaspMap的结构中,所以可以根据key来获取value
public Object get(String key){
rw.readLock().lock();
Object value = null;
try{
//缓存中没有数据,实际情况下就要从数据库中查询出来,然后放到Map中。
value = cacheMap.get(key);
if(value == null){
rw.readLock().unlock();
rw.writeLock().lock();
try{
if(value == null)
value="aaa";
}finally{
rw.writeLock().unlock();
}
rw.readLock().lock();
}
}finally{
rw.readLock().unlock();
}
return value;
}
}
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
*
* @author 宋小亮
*
*/
public class Cache {
private Map<String,Object> cacheMap = new HashMap<>();
private ReadWriteLock rw = new ReentrantReadWriteLock();
public static void main(String[] args){
}
//获取数据
//缓存中的数据都保存在类似HaspMap的结构中,所以可以根据key来获取value
public Object get(String key){
rw.readLock().lock();
Object value = null;
try{
//缓存中没有数据,实际情况下就要从数据库中查询出来,然后放到Map中。
value = cacheMap.get(key);
if(value == null){
rw.readLock().unlock();
rw.writeLock().lock();
try{
if(value == null)
value="aaa";
}finally{
rw.writeLock().unlock();
}
rw.readLock().lock();
}
}finally{
rw.readLock().unlock();
}
return value;
}
}
相关文章推荐
- JAVA基于UDP的多点广播数据报技术的一个实现例子
- java一个实现实例缓存的不可变类
- java中的缓存技术该如何实现
- 一个简单的java缓存实现
- JAVA基于UDP的多点广播数据报技术的一个实现例子
- java中的缓存技术该如何实现
- java中的缓存技术该如何实现
- java中的缓存技术该如何实现
- Java学习之ConcurrentHashMap实现一个本地缓存
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- 分享一个java Map实现的cache manager,定时清除缓存起来的值
- Java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- java中的缓存技术该如何实现
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- (9)java5的线程【锁lock】与【读写锁_以及模拟缓存(妙用)】技术
- java java local cache本地缓存的两种实现,一个基于list轮询一个基于timer定时
- 一个轻量级java缓存的实现
- java中的缓存技术该如何实现
- java中的缓存技术该如何实现
- 分享一个java对xml,excel,jdbc.properties,读写文件,读写图片等实现(2)