我正在多线程环境中实现Ehcache.
我有1个专用于管理和刷新缓存的线程,其他线程可以在任何给定时间调用它.
缓存是只读的,但每30分钟刷新一次. Ehchache在更新缓存时是否会自动管理并锁定对缓存的读取权限?或者我需要使用acquireReadLockOnKey()语句进行换行?
Ehcache cache = getCache();
cache.acquireReadLockOnKey(element);
try {
cache.put(element);
}
finally {
cache.releaseReadLockOnKey(element);
}
UDPATE:
以下是有关实施的更多详细信息.上面的代码用于“updateCache()”方法,但下面是它最初创建的方式.
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Ehcache;
public class TTLCacheProviderHelper {
private CacheManager cacheManager = null;
Ehcache myTtlCache = null;
private static final String CACHE_NAME = "myTTLCache";
private static int TTL_VALUE = 1800;
private static EvictTimeClock evictTimeClock = null;