如果Struts 1动作类是单例,是否意味着该类的2个线程不可用?

时间:2011-05-03 09:00:56

标签: multithreading singleton thread-safety struts synchronized

如果Struts 1动作类是单例模式类,是否意味着该类的两个线程不可用?

我的问题是好奇,如果我要在Struts 1类中同步标记一个方法,这是否意味着在任何时候该方法只能为1个线程服务。

private synchronized  void runSubmitCalculatorState(ControllerRequest request,ControllerResponse response){}

2 个答案:

答案 0 :(得分:2)

Singleton意味着只能通过整个应用程序创建该类的一个实例。它意味着 该类没有两个线程可供使用。

Syncronized方法意味着一次只能有一个线程能够访问该方法。

同步和单身之间没有直接的关系,这意味着您可以创建单例或非单例类进行同步。

答案 1 :(得分:1)

Struts 1 Actions是单例,因此它们必须是线程安全的,因为只有一个类的实例处理该Action的所有请求。单例策略限制为Struts 1 Actions,并且在开发应用程序时需要额外注意使操作资源线程安全或同步。