Prosta biblioteka buforowania Java lub wzorzec projektowania?

Muszę często uzyskiwać dostęp do wyniku czasochłonnych obliczeń. Wynik rzadko się zmienia, więc muszę od czasu do czasu przeliczać dane, ale można przez jakiś czas używać przestarzałego wyniku. Jaki byłby najprostszy sposób, aby to zrobić i czy istnieje istniejąca metoda biblioteki lub wzór projektu?

Myślę o czymś takim

private static List myCachedList = null;

...

// refresh list once in 3600 seconds
if (needsRefresh(myCachedList, 3600)) {
    // run the calculation
    myCachedList = ...
}
// use either updated or previous value from here on

Właściwa implementacja może nie być trywialna, może mieć do czynienia z bezpieczeństwem wątków, warunkami wyścigu itp., Więc wolałbym użyć sprawdzonej implementacji niż rzucać własnymi tutaj.

questionAnswers(4)

yourAnswerToTheQuestion