首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在servlet中存储关于单个用户请求的数据的线程安全技术有哪些?

在servlet中存储关于单个用户请求的数据的线程安全技术有哪些?
EN

Stack Overflow用户
提问于 2010-02-28 07:05:09
回答 2查看 215关注 0票数 1

如果servlet不是线程安全的,那么这是否意味着在servlet生命周期中创建和引用的所有对象都不是线程安全的?也许我没有完全理解这一点,但是在Web应用程序中,您几乎总是希望考虑在servlet生命周期期间存储的与单个用户的请求相关的数据。管理这些数据的一些最佳实践是什么?我是否应该为我的servlet实例化一个处理器(非常类似于前端控制器),并将其包装在一个同步块中?这似乎是一个主要的性能问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-28 07:28:22

只是不要将请求或会话作用域的数据指定为servlet的实例变量。就这样。在方法块中声明并分配它们,它将是threadsafe (读取:它将不再在所有请求/线程之间共享)。我之前已经详细回答过这个问题:In Java, How do I make sure my web application is thread safe?

票数 3
EN

Stack Overflow用户

发布于 2010-02-28 07:32:18

实例变量不是线程安全的。局部变量(在方法中声明)将是线程安全的;每个线程基本上都有自己的一组局部变量。

如果必须依赖实例变量,请参阅writing thread-safe servlets上的这篇JavaWorld文章以获得其他提示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2349315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档