我正在编写 j2ee 代码,但我遇到了 session 属性的问题。
关于确保在 servlet 中设置和访问的 session 属性的线程安全? 因为,我知道我们无法实现“SingleThreadModel”,因为这在 java 中已被弃用,而且我们无法同步 doXXXX() 方法。 我尝试使用“SingleThreadModel”,但它不起作用。 那我该如何保证呢? 我可以同步 session 对象吗?
请告诉我如何修复它。
最佳答案
您需要一个 session 范围的互斥体。 IE。在 session 上同步,或者更好地在 session 中同步用例特定对象。
您应该使互斥量的范围尽可能小,因为可能会导致请求序列化。我在我的一个项目中尝试过一次,其中使用了 Spring 的 RequestMappingHandlerAdapter.setSynchronizeOnSession() ,它只是在每个请求的 session 上进行同步。这对显示渲染图像列表的页面产生了重大影响。我可以看到这些图像按顺序出现。
关于java - 如何保证 session 属性的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25625641/