Einfache Java-Caching-Bibliothek oder Entwurfsmuster?

Ich muss häufig auf das Ergebnis einer zeitaufwändigen Berechnung zugreifen. Das Ergebnis ändert sich selten, daher muss ich die Daten von Zeit zu Zeit neu berechnen, aber es ist in Ordnung, das veraltete Ergebnis für eine Weile zu verwenden. Was wäre der einfachste Weg, dies zu tun, und gibt es eine vorhandene Bibliotheksmethode oder ein vorhandenes Entwurfsmuster?

Ich denke an so etwas

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

Eine ordnungsgemäße Implementierung ist möglicherweise nicht trivial, sondern muss sich mit Thread-Sicherheit, Race-Bedingungen usw. befassen. Daher würde ich lieber eine bewährte Implementierung verwenden, als hier meine eigene zu erstellen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage