java做一个缓存类(应用TimerTask和ReadWriteLock)
来源:互联网 发布:软件开发甘特图 编辑:程序博客网 时间:2024/06/09 13:52
import java.util.HashMap;import java.util.Map;import java.util.Timer;import java.util.TimerTask;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class MyCache { private Map<String,Object> map = new HashMap<String, Object>(); private ReadWriteLock rwl = new ReentrantReadWriteLock(); /** * 往缓存中放数据放一段时间 * @param key * @param value * @param mill */ public void put(final String key,Object value,long mill){ map.put(key, value); new Timer().schedule(new TimerTask() { @Override public void run() { map.remove(key); } }, mill); } /** * 从缓存中拿,如果数据过期,模拟去数据库中取数据 * @param key * @return */ public Object get(String key){ Object result = null; rwl.readLock().lock(); try{ result = map.get(key); if(result == null){ rwl.readLock().unlock(); rwl.writeLock().lock(); try{ if(result == null){ result = new Object(); //如果缓存中没有去数据库取 } }finally{ rwl.writeLock().unlock(); } rwl.readLock().lock(); } }finally{ rwl.readLock().unlock(); } return result; }}
0 0
- java做一个缓存类(应用TimerTask和ReadWriteLock)
- java 多线之用ReadWriteLock实现 一个简单缓存
- java类Timer和TimerTask
- 定时器应用:Timer和TimerTask类
- Java中锁的应用之-ReadWriteLock
- Java中锁的应用之-ReadWriteLock
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- java类Timer和TimerTask的使用
- 在jsp中获取服务器端的时间
- 104.Merge k Sorted Lists-合并k个排序链表(中等题)
- 序选择器 :
- 滚轮滚动时追加页面显示数据
- 最小生成树算法
- java做一个缓存类(应用TimerTask和ReadWriteLock)
- javascript数据结构1-数组
- Android中的软件Watchdog
- Winform登录窗体登录仿asp.net验证成功后进入主界面
- Android,HTTP请求类
- javascript数据结构2-列表
- 顶级的JavaScript框架、库、工具及其使用
- javascript数据结构3-栈
- Web测试方法总结