我在tomcat java上使用基于用户的web应用程序中的servlet。我有一个servlet Action类说A.我还创建了一个自定义类,说B有一些方法。
我的问题是:我应该在自定义类中创建Staitc方法,还是可以通过实例化类来调用它们。我在下面解释了两个场景:
Scenerio First:
Servlet A{
B.methodB() // static method.
}
Scenerio Second:
Servlet A{
B b = new B();
b.methodB() // instance method.
}
在我的情况下,方案首先是线程安全的吗?静态方法是否总是需要在基于用户的应用程序中同步?
答案 0 :(得分:0)
Web 应用程序始终是为用户编写的,因此它始终是基于用户的。 (或者我错过了什么?)
场景一:methodB
应该是同步的,但它会造成性能问题,因为一次只有一个线程可以访问它。
场景二:它会起作用,但也许创建一个对象池会更好,因为对象不需要被垃圾收集。