Статический метод из сервлета - PullRequest
3 голосов
/ 22 августа 2010

Я пишу свое приложение сервлета и хотел бы использовать следующий статический метод, который будет умножать x и y.

public class Helper {
    private Helper() {
        throw new AssertError();
    }

    public static int mutltiply(int a, int b) {
        int c = a*b;
        return c;
    }
 }

Я понимаю, что сервлеты являются многопоточным окружением.Безопасно ли вызывать такой метод из сервлета?

я должен добавить свойство синхронизации к этой функции?Мой концерт касается значения переменной c при многопоточности.

Я новичок в Java, поэтому эта информация будет очень полезна.

Дэнни.

Ответы [ 4 ]

6 голосов
/ 22 августа 2010

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

При этом рассмотрите возможность разделения общей функциональности, подобной этой, на другой класс. Для классов лучше следовать принципу единственной ответственности , и вы сможете использовать свои статические методы в других сервлетах.

4 голосов
/ 22 августа 2010

Пока вы не используете статические поля, я не вижу проблем.Но если вы действительно создаете метод, который умножается, возможно, вам нужно переосмыслить некоторые части вашего приложения.

4 голосов
/ 22 августа 2010

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

2 голосов
/ 22 августа 2010

Да, этот метод является потокобезопасным. Пока вы используете только локальные переменные, вы будете потокобезопасны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...