スレッドの安全で効率的なキャッシュ実装コードLRU
が必要です。 以下のコードはスレッドセーフではありません。このコードはConcurrentHashMap
を使用して拡張できますか? ありがとうございます。並行LRUキャッシュの実装
private class LruCache<A, B> extends LinkedHashMap<A, B> {
private final int maxEntries;
public LruCache(final int maxEntries) {
super(maxEntries + 1, 1.0f, true);
this.maxEntries = maxEntries;
}
@Override
protected boolean removeEldestEntry(final Map.Entry<A, B> eldest) {
return super.size() > maxEntries;
}
}
グアバキャッシュを使用することを検討してください:http://google.github.io/guava/releases/19.0/api/docs/com/google/ common/cache/package-frame.html –
[ConcurrentLinkedHashMap](https://github.com/ben-manes/concurrentlinkedhashmap/wiki/Design)beget [Guavaのキャッシュ](https://github.com/ben-manes/)同時リンクされたハッシュマップ/ blob/wiki/ConcurrentCachingAtGoogle.pdf)は、[Caffeine](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)になります。 –
https://github.com/ben-manes/caffeineへのリンクは、はるかに高いはずです。これは本当に素晴らしく、よく文書化されたよく書かれたパッケージです。 – user2163960