Próbuję utworzyć mapę, w której wpisy przekroczą limit czasu i zostaną usunięte po określonym czasie.Mapa z wpisami czasowymi/przejściowymi - pamięć nie jest problemem
Zasadniczo, <K, V> Map.put(K key, V value, long **time**)
- wpis zostanie natychmiast umieszczony na mapie i wygaśnie po czasie (ms). Nie muszę odzyskiwać usuniętego wpisu w żadnym momencie w przyszłości, ale chcę się upewnić, że nie ma go już na mapie.
Na przykład: map.put("foo", "bar", 60l * 1000l)
spowoduje, że ta para klucz-wartość będzie żyła na mapie przez minutę (60long i 1000long).
Próba: użyć ConcurentMap i wdrożenie Map.put(K key, V value, long **time**)
poprzez następujące:
1. połączenia super.put(key, value)
2. utworzyć gwint, który może pomieścić na raz(MS)
3. połączenia remove(key)
celu usunięcia wpisu.
Pytanie: proszę o komentarz/daj mi znać, czy jest to dobry pomysł pod względem bezpieczeństwa wątku, spójności lub wszelkich błędów w mojej próbie. Jeśli uważasz, że jest lepszy sposób, aby to osiągnąć, podaj wszelkie porady.
Edycja: Dzięki za odpowiedzi, pamięć nie jest tutaj problemem, naprawdę zależy mi tylko na krótkim okresie życia wpisów. Dziękuję Ci.
Dzięki za odpowiedź, ale jestem zaniepokojony tylko z czasu tutaj, pamięć nie jest problemem. –
+1 do szybkiej edycji.Chcę, aby wpisy były żywe przez różną ilość czasu, ale druga implementacja z Timerem jest bardzo pomocna. Dzięki. –