我对ThreadLocal的有限理解是它存在资源泄漏问题。我收集到这个问题可以通过正确使用带有 ThreadLocal 的WeakReferences来解决(尽管我可能误解了这一点。)我只是想要一个正确使用带有 WeakReference 的 ThreadLocal 的模式或示例(如果存在)。例如,在这段代码片段中,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);
}
}