如果Struts 1动作类是单例模式类,是否意味着该类的两个线程不可用?
我的问题是好奇,如果我要在Struts 1类中同步标记一个方法,这是否意味着在任何时候该方法只能为1个线程服务。
private synchronized void runSubmitCalculatorState(ControllerRequest request,ControllerResponse response){}
答案 0 :(得分:2)
Singleton意味着只能通过整个应用程序创建该类的一个实例。它不意味着 该类没有两个线程可供使用。
Syncronized方法意味着一次只能有一个线程能够访问该方法。
同步和单身之间没有直接的关系,这意味着您可以创建单例或非单例类进行同步。
答案 1 :(得分:1)
Struts 1 Actions是单例,因此它们必须是线程安全的,因为只有一个类的实例处理该Action的所有请求。单例策略限制为Struts 1 Actions,并且在开发应用程序时需要额外注意使操作资源线程安全或同步。