package cn.itcast.heima;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* 缓存demo
*
* @ClassName: CacheDemo
* @Description: TODO
* @author liuyuan
* @date 2016年8月10日 下午6:53:07
*/
public class CacheDemo {
private Map<String, Object> cache = new HashMap<String, Object>();// 缓存存放的位置
private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();// 读写锁
public Object getData(String key) {
readWriteLock.readLock().lock();// 加读锁
Object value = null;
try {
value = cache.get(key);// 读
if (value == null) {
readWriteLock.readLock().unlock();// 开读锁
readWriteLock.writeLock().lock();// 加写锁
try {
if (value == null) {
value = "abc";// 写:实际代码为从数据库中查询;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
readWriteLock.writeLock().unlock();// 开写锁
}
readWriteLock.readLock().lock();// 加读锁
}
} catch (Exception e) {
e.printStackTrace();
} finally {
readWriteLock.readLock().unlock();// 开读锁
}
return value;
}
}
缓存demo
最新推荐文章于 2026-08-03 20:59:32 发布
本文介绍了一个使用Java实现的简单缓存系统,通过结合读写锁机制来提高并发访问效率。该系统能够有效地处理缓存命中和未命中的情况,并在缓存未命中时进行数据填充。

689

被折叠的 条评论
为什么被折叠?



