来自servlet的静态方法

时间:2010-08-22 16:03:58

标签: java servlets static thread-safety

我正在编写我的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的新手,所以这些信息会非常有用。

丹尼。

4 个答案:

答案 0 :(得分:6)

您的静态方法是无状态的。因为它不是指方法范围之外的任何东西,所以在任何地方都是安全的。

话虽如此,考虑将这样的通用功能分成另一个类。类最好遵循single responsibility principle,并且您将能够在其他servlet中使用静态方法。

答案 1 :(得分:4)

c是一个局部变量,因此该方法是可重入且线程安全的。您可以安全地从多个线程中使用它。

答案 2 :(得分:4)

只要你不使用静态字段,我就没有问题。但是如果你真的在创建一个繁殖的方法,也许你需要重新考虑你的应用程序的某些部分。

答案 3 :(得分:2)

是的,该方法是线程安全的。只要您只使用局部变量,就可以保证线程安全。