У меня есть веб-приложение, работающее на 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
? Если мне нужно использовать блок, какой объект мне следует использовать для его блокировки?