Simple mise en cache Java bibliothèque ou motif de conception?

J'ai besoin d'accéder fréquemment le résultat d'un calcul fastidieux. Le résultat change rarement, donc je dois recalculer les données de temps en temps, mais c'est ok pour utiliser le obsolète suite pendant un certain temps. Quelle serait la meilleure façon de le faire et s'il y a une bibliothèque existante méthode ou motif de conception?

Je pense à quelque chose comme

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

Une mise en œuvre correcte peut ne pas être négligeable, il peut avoir à traiter avec du fil de sécurité, de conditions de course, etc., donc, je préfère utiliser une méthode éprouvée de mise en œuvre de rouler ma propre ici.

OriginalL'auteur nn4l | 2012-10-31