Безопасность потоков, статические методы и некоторый странный код

Простой способ форматирования даты и преобразования в строку

    Date date= new Date();

    String dateStr=String.format("%td/%tm/%tY", date,date,date);

    System.out.println("Date with format of dd/mm/dd: "+dateStr);

output: Дата с форматом dd / mm / dd: 21/10/2015

3
задан ringadingding 13 July 2018 в 14:03
поделиться

1 ответ

Учитывая, что объект не имеет состояния, нет никакой заботы о безопасности потоков, независимо от количества потоков, вызывающих методы или ссылки на одноэлементный объект.

Все методы в классе , включая статические, не используют общие данные. Поэтому, независимо от того, ссылаются ли они на одноэлементный объект или передают экземпляр вокруг, нет необходимости в доступе к чему-либо, что нужно синхронизировать.

Как и в коде, единственными данными, которые могли бы , возможно, требуется синхронизация params в аргументе methodThatCallsService, и только в том случае, если этот метод изменяет данные, а несколько потоков содержат ссылку на тот же объект Params.

Но что касается этот класс, это поточно-безопасный, даже если реализация singleton уязвима.

3
ответ дан ernest_k 17 August 2018 в 12:40
поделиться
  • 1
    На всякий случай, если синглтон имеет некоторые переменные-переменные, то его проблемы верны, но, глядя на образец кода, ваши ответы идеальны. – Rahul B 13 July 2018 в 14:27
  • 2
    Если переменная params считывается и изменяется, могут возникнуть проблемы. Поскольку мы не видим никаких применений params, мы могли только догадываться – Ivan 13 July 2018 в 14:47
Другие вопросы по тегам:

Похожие вопросы: