Mi comprensión limitada de ThreadLocal es que tiene resource leak issues. Supongo que este problema puede remediarse mediante el uso apropiado de WeakReferences con ThreadLocal (aunque puedo haber entendido mal este punto). Simplemente me gustaría un patrón o ejemplo para usar correctamente ThreadLocal con WeakReference, si existe. Por ejemplo, en este fragmento de código ¿dónde se introduciría 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);
}
}
¿Por qué creen que tiene problemas de recursos? La razón por la que pregunto es porque, según mi experiencia, no he tenido ningún problema. –
Proporcione algunos antecedentes sobre por qué cree que hay una pérdida de memoria. – erickson
Actualizado. Por favor vea el enlace "Problemas de fuga de recursos" arriba. –