您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java实现一个简单的内存缓存类

2026/1/28 14:11:21发布18次查看
import java.util.collections; import java.util.hashmap; import java.util.map; import java.util.concurrent.executorservice; import java.util.concurrent.executors; import java.util.concurrent.timeunit; public class simplecache { private final map m_objects; private final map m_expiredobjects; private final long m_lexpiretime; private final executorservice m_executor; public simplecache() { this(500); } public simplecache(final int nexpiretime) { m_objects = collections.synchronizedmap(new hashmap()); m_expiredobjects = collections.synchronizedmap(new hashmap()); m_lexpiretime = nexpiretime; m_executor = executors.newfixedthreadpool(256); executors.newscheduledthreadpool(5).schedulewithfixeddelay(removeexpiredobjects(), m_lexpiretime / 2, m_lexpiretime, timeunit.seconds); } private final runnable removeexpiredobjects() { return new runnable() { public void run() { for (final string name : m_expiredobjects.keyset()) { if (system.currenttimemillis() > m_expiredobjects.get(name)) { m_executor.execute(createremoverunnable(name)); } } } }; } private final runnable createremoverunnable(final string name) { return new runnable() { public void run() { m_objects.remove(name); m_expiredobjects.remove(name); } }; } public long getexpiretime() { return m_lexpiretime; } public void put(final string name, final t obj) { put(name, obj, m_lexpiretime); } public void put(final string name, final t obj, final long expiretime) { m_objects.put(name, obj); m_expiredobjects.put(name, system.currenttimemillis() + expiretime * 1000); } public t get(final string name) { final long expiretime = m_expiredobjects.get(name); if (expiretime == null) return null; if (system.currenttimemillis() > expiretime) { m_executor.execute(createremoverunnable(name)); return null; } return m_objects.get(name); } @suppresswarnings(unchecked) public r get(final string name, final class type) { return (r) get(name); } }
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product