所有,为了更好地理解线程问题。我为它写了一些测试代码,我认为下面的代码应该是线程安全的方式Attributes
。HttpSession
HttpSession session = request.getSession();
synchronized (session) {
Integer n = (Integer) session.getAttribute("foo");
session.setAttribute("foo", (n == null) ? 1 : n + 1);
}
但实际上它的答案告诉我它不是。我只是无法理解,在我看来,我认为会话是一个客户端和服务器之间的转换。这种情况有线程问题吗?如果有,请告诉我在哪种情况下此代码不是线程安全的。谢谢。