知识大全 Java实现简单的缓存机制原理
Posted 知
篇首语:一卷旌收千骑虏,万全身出百重围。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java实现简单的缓存机制原理相关的知识,希望对你有一定的参考价值。
Java实现简单的缓存机制原理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
package qinbo hui;
/*
设计思想来自-回钦波(qq: )
*/
public class CacheConfModel implements java io Serializable
private long beginTime;
private boolean isForever = false;
private int durableTime;
public long getBeginTime()
return beginTime;
public void setBeginTime(long beginTime)
this beginTime = beginTime;
public boolean isForever()
return isForever;
public void setForever(boolean isForever)
this isForever = isForever;
public int getDurableTime()
return durableTime;
public void setDurableTime(int durableTime)
this durableTime = durableTime;
package qinbo hui;
import java util *;
import test CacheConfModel;
/*
设计思想来自-回钦波(qq: )
*/
public class CacheMgr
private static Map cacheMap = new HashMap();
private static Map cacheConfMap = new HashMap();
private CacheMgr()
private static CacheMgr cm = null;
public static CacheMgr getInstance()
if(cm==null)
cm = new CacheMgr();
Thread t = new ClearCache();
t start();
return cm;
/**
* 增加缓存
* @param key
* @param value
* @param ccm 缓存对象
* @return
*/
public boolean addCache(Object key Object value CacheConfModel ccm)
boolean flag = false;
cacheMap put(key value);
cacheConfMap put(key ccm);
System out println( now addcache== +cacheMap size());
return true;
/**
* 删除缓存
* @param key
* @return
*/
public boolean removeCache(Object key)
cacheMap remove(key);
cacheConfMap remove(key);
System out println( now removeCache== +cacheMap size());
return true;
/**
* 清除缓存的类
* @author wanglj
* 继承Thread线程类
*/
private static class ClearCache extends Thread
public void run()
while(true)
Set tempSet = new HashSet();
Set set = cacheConfMap keySet();
Iterator it = erator();
while(it hasNext())
Object key = it next();
CacheConfModel ccm = (CacheConfModel)cacheConfMap get(key);
//比较是否需要清除
if(!ccm isForever())
if((new Date() getTime() ccm getBeginTime())>= ccm getDurableTime()* * )
//可以清除 先记录下来
tempSet add(key);
//真正清除
Iterator tempIt = erator();
while(tempIt hasNext())
Object key = tempIt next();
cacheMap remove(key);
cacheConfMap remove(key);
System out println( now thread================> +cacheMap size());
//休息
try
Thread sleep( * L);
catch (InterruptedException e)
// TODO Auto generated catch block
e printStackTrace();
cha138/Article/program/Java/hx/201311/25737
相关参考