я наткнулся на следующий код в прежней системе,Неправильная практика сохранения локальных значений потоков в статическом конечном поле?
private static final ThreadLocal<DateFormat> dateFormatThreadLocal = new ThreadLocal(){
@Override
protected Object initialValue() {
//Set initial value
return new SimpleDateFormat("");
}
};
private static final DateFormat someValue = dateFormatThreadLocal.get();
Однако я следующие вопросы.
1.) Рекомендуется ли определять локаторы потоков как окончательные. (Я знаю, что статический - это хорошо)
2.) Неплохо ли держать вызов thread local.get() в статической (или как статической, и конечной) переменной экземпляра? (если мы это делаем, это не препятствует цельной цели локализации на первом месте)
FYI Если у вас есть java 8, вы можете использовать 'DateTimeFormatter', который является потокобезопасным: http://stackoverflow.com/a/35818373/360211 – weston