만료 키가 있는 Java 시간 기반 맵/캐시
Q: 내장된 Java 맵 또는 유사한 데이터 구조가 자동으로 지정된 간격 후에 항목을 제거합니까?
A: 예, Google 컬렉션(현재 Guava로 알려짐)은 원하는 기능이 포함된 MapMaker 클래스:
ConcurrentMap<Key, Graph> graphs = new MapMaker() .concurrencyLevel(4) .softKeys() .weakValues() .maximumSize(10000) .expiration(10, TimeUnit.MINUTES) .makeComputingMap( new Function<Key, Graph>() { public Graph apply(Key key) { return createExpensiveGraph(key); } });
참고: Guava 10.0부터 위에서 언급한 MapMaker 메서드는 더 이상 사용되지 않으며 CacheBuilder 클래스를 사용합니다.
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(10000) .expireAfterWrite(10, TimeUnit.MINUTES) .build( new CacheLoader<Key, Graph>() { public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } });
이 CacheBuilder는 캐시 동작 관리를 위한 추가적인 유연성과 보다 현대적인 API를 제공합니다.
위 내용은 Java에서 시간 기반 만료 맵을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!