我正在编写我的Servlet应用程序,并希望使用以下静态方法,它将乘以x和y。
public class Helper {
private Helper() {
throw new AssertError();
}
public static int mutltiply(int a, int b) {
int c = a*b;
return c;
}
}
据我所知,Servlet是多线程环境。从servlet调用这样的方法是否安全?
我应该为此函数添加synchronize属性吗?我的演唱会是关于多线程下c变量的值。
我是Java的新手,所以这些信息会非常有用。
丹尼。
答案 0 :(得分:6)
您的静态方法是无状态的。因为它不是指方法范围之外的任何东西,所以在任何地方都是安全的。
话虽如此,考虑将这样的通用功能分成另一个类。类最好遵循single responsibility principle,并且您将能够在其他servlet中使用静态方法。
答案 1 :(得分:4)
c
是一个局部变量,因此该方法是可重入且线程安全的。您可以安全地从多个线程中使用它。
答案 2 :(得分:4)
只要你不使用静态字段,我就没有问题。但是如果你真的在创建一个繁殖的方法,也许你需要重新考虑你的应用程序的某些部分。
答案 3 :(得分:2)
是的,该方法是线程安全的。只要您只使用局部变量,就可以保证线程安全。