La mia comprensione limitata di ThreadLocal è che ha resource leak issues. Ho capito che questo problema può essere risolto con l'uso corretto di WeakReferences con ThreadLocal (sebbene possa aver frainteso questo punto). Vorrei semplicemente un modello o un esempio per utilizzare correttamente ThreadLocal con WeakReference, se ne esiste uno. Per esempio, in questo frammento di codice dove verrà introdotto il WeakReference?ThreadLocal Resource Leak and WeakReference
static class DateTimeFormatter {
private static final ThreadLocal<SimpleDateFormat> DATE_PARSER_THREAD_LOCAL = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy/MM/dd HH:mmz");
}
};
public String format(final Date date) {
return DATE_PARSER_THREAD_LOCAL.get().format(date);
}
public Date parse(final String date) throws ParseException
{
return DATE_PARSER_THREAD_LOCAL.get().parse(date);
}
}
Perché credo che abbia problemi di risorse? Il motivo per cui lo chiedo è perché nella mia esperienza, non ho avuto un problema. –
Si prega di fornire alcune informazioni sul motivo per cui si ritiene che ci sia una perdita di memoria. – erickson
Aggiornato. Si prega di consultare il link "Problemi di perdita di risorse" sopra. –