【问题标题】:If Struts 1 action classes are singletons, does it mean there cannot be 2 threads of the class available?如果 Struts 1 动作类是单例的,这是否意味着该类不能有 2 个线程可用?
【发布时间】:2011-05-03 09:00:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: multithreading singleton thread-safety struts synchronized


    【解决方案1】:

    单例意味着在整个应用程序中只会创建该类的一个实例。它意味着 该类不能有两个线程可供使用。

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

    syncronized 和 singleton 之间没有直接关系,这意味着您可以创建要同步的 singleton 或非 singleton 类。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        相关资源
        最近更新 更多