Несколько потоков вызывают статический вспомогательный метод

У меня есть веб-приложение, работающее на Tomcat.

Есть несколько вычислений, которые необходимо выполнить в нескольких местах веб-приложения. Могу ли я сделать эти вычисления статическими вспомогательными функциями? Если на сервере достаточно ядер процессора, могут ли несколько вызовов этой статической функции (в результате нескольких запросов к разным сервлетам) выполняться параллельно? Или один запрос должен ждать, пока другой запрос не завершит вызов?

public class Helper {
    public static void doSomething(int arg1, int arg2) {
        // do something with the args
        return val;
    }
}

, если вызовы выполняются параллельно: У меня есть еще один вспомогательный класс со статическими функциями, но этот класс содержит частный статический член, который используется в статических функциях. Как я могу убедиться, что функции поточно-ориентированы?

public class Helper {

    private static SomeObject obj;

    public static void changeMember() {
        Helper.obj.changeValue();
    }

    public static String readMember() {
        Helper.obj.readValue();
    }

}

changeValue () и readValue () читают / изменяют одну и ту же переменную-член Helper.obj . Нужно ли мне синхронизировать все статические функции или только блок, в котором используется Helper.obj ? Если мне нужно использовать блок, какой объект мне следует использовать для его блокировки?

9
задан ROMANIA_engineer 30 December 2015 в 14:38
поделиться