【问题标题】:java threadlocal singleton - what is it?java threadlocal单例 - 它是什么?
【发布时间】:2011-07-05 12:04:54
【问题描述】:

通俗地说,当有人说对象是 Java 中的线程本地单例时,这是什么意思?我参加了一个关于 Java Server Faces 的讲座,每次谈到 FacesContext 时——讲师总是提醒我们它是一个线程本地单例。

【问题讨论】:

    标签: java jsf thread-local facescontext


    【解决方案1】:

    每个线程只有一个 FacesContext 的唯一实例。

    FacesServlet 在 HTTP servlet 请求的开头创建一个 ThreadLocal<FacesContext>,并在与 HTTP servlet 请求关联的 HTTP servlet 响应结束时将其删除。每当您在 JSF 代码中执行 FacesContext#getCurrentInstance() 时,您将始终在整个 HTTP servlet 请求/响应处理过程中获得同一个实例。

    由于 HTTP servlet 请求由不同的线程执行,并且 FacesContext 实例作为线程局部变量附加到单个线程,因此没有两个 HTTP servlet 请求共享 相同 FacesContext 实例。

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 2018-09-18
      • 2012-05-08
      • 2011-02-16
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多