1

在此链接中,我看到以下代码。

synchronized (_jspx_page_context) {
    pageCounter = (jspexamples.counterBean) _jspx_page_context.getAttribute("pageCounter", PageContext.PAGE_SCOPE);
    if (pageCounter == null){
      pageCounter = new jspexamples.counterBean();
      _jspx_page_context.setAttribute("pageCounter", pageCounter, PageContext.PAGE_SCOPE);
    }
}

其中 _jspx_page_context 是 PageContext 类型。为什么 _jspx_page_context 上有同步?PageContext 是线程共享的吗?

4

1 回答 1

2

它是线程共享的,意味着多个线程可以pagecontext随时访问。所以,为了保证线程安全,我们必须synchronize对pageContext进行操作。否则,多个线程可能会更新相同的值,结果会很奇怪。

于 2012-08-09T04:46:11.873 回答