首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jsp中生成isThreadSafe=false的页面

在jsp中生成isThreadSafe=false的页面
EN

Stack Overflow用户
提问于 2015-04-23 13:11:35
回答 1查看 78关注 0票数 0

我正在处理一个使用JSP,servlet开发的数据库项目。它是一个拥有超过20个用户的ERP项目。我的老板告诉我在项目中使用多头技术。请告诉我如何决定哪些页面应该是多线程的,哪些不应该是多线程的。

EN

回答 1

Stack Overflow用户

发布于 2015-04-23 14:53:25

jsp中的Java多线程本身不是一个有效的参数,因为正如@JBNizet所说,web容器已经为您处理了多线程。

不过,在拥有可以异步运行的代码的情况下,您可以使用多线程。

让我们假设您有这样的场景:

代码语言:javascript
复制
obj1 = obj2.getValFromDb(obj3.getSessionId(obj4.getId()));

在这种情况下,不能使用多线程,因为任务必须按顺序执行才能得到结果。所以你只需要一个单独的线程...

但在下面的例子中...

代码语言:javascript
复制
val = getValFromDb()+getValFromSRC1()+getValFromSRC2();

子结果可以在单独的线程中计算。

因此,您必须对您的代码进行评估,并适当地使用多线程。

对于jsps中的isThreadSafe指令,您唯一能做的就是禁用多线程(这与您正在寻找的相反)。正如规范所说:

使用SingleThreadModel接口可以保证一次只有一个线程在给定servlet实例的服务方法中执行。重要的是要注意,这种保证只适用于每个servlet实例,因为容器可以选择将这些对象池化。一次可由多个servlet实例访问的对象,例如HttpSession实例,可以在任何特定时间供多个servlet使用,包括那些实现SingleThreadModel的servlet。

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

https://stackoverflow.com/questions/29814224

复制
相关文章

相似问题

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