在此link中,我看到以下代码。
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线程共享?
答案 0 :(得分:2)
线程共享,意味着多个线程可以随时访问pagecontext
。因此,为了确保线程安全,我们必须对pageContext进行synchronize
次操作。否则,多个线程可能会更新相同的值,结果将被打开。