Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Peta/Cache Tamat Tempoh Berasaskan Masa di Java?
Peta/Cache Berasaskan Masa Java dengan Kekunci Tamat Tempoh
Soalan ini mencari pelaksanaan Java yang tamat tempoh entri secara automatik berdasarkan tamat masa yang boleh dikonfigurasikan. Penyelesaian pilihan mengelakkan rujukan yang lemah, fail konfigurasi luaran dan pelaksanaan manual.
Jawapan
Pustaka Guava menyediakan penyelesaian dengan kelas MapMakernya:
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); } });</key></key>
Untuk Guava versi 10.0 dan ke atas, gunakan 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); } });</key></key>
Pelaksanaan ini menyediakan tamat tempoh kunci automatik, memastikan entri dialih keluar selepas tempoh yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Peta/Cache Tamat Tempoh Berasaskan Masa di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!