Мне приходится печатать много форматированных десятичных значений во многих потоках параллельно. Для форматирования десятичных значений я использую java.text.DecimalFormat
, настроенный шаблоном.
Я знаю предупреждение из java doc DecimalFormat
:
Десятичные форматы, как правило, не синхронизированы. Рекомендуется создавать отдельные экземпляры формата для каждый поток. Если несколько потоков доступ к формату одновременно, он должен синхронизироваться снаружи.
Но я не знаю, относится ли это предупреждение к моему сценарию:
Я настраиваю java.text.DecimalFormat
один раз, когда приложение запускается (и сохраняет Formatter
в конечном поле). После этого я ТОЛЬКО использую метод format(double)
.
Причина, по которой я хочу это сделать, это: я не хочу терять производительность, создавая новый экземпляр DecimalFormat
каждый раз, когда мне нужно печатать отформатированный номер.
Я просмотрел код DecimalFormat.format(double)
, и он выглядит потокобезопасным, но я не уверен.
Не могли бы вы подтвердить, что использование DecimalFormat.format(double)
в конечном итоге является потокобезопасным, если не изменять конфигурацию форматирования, или объяснить, почему это не так?