要在jsp

时间:2015-04-23 05:11:35

标签: java multithreading jsp

我正在使用JSP,servlet开发的数据库项目。这是一个拥有20多个用户的ERP项目。我的老板告诉我在项目中使用Multi-theading。请告诉我如何决定哪些页面应该是多线程的,哪些页面不应该。

1 个答案:

答案 0 :(得分:0)

jsp中的Java多线程并不是一个有效的参数,因为正如@JBNizet所说,一个Web容器已经为你处理多线程。

但是,如果您拥有可以异步运行的代码,则可以使用多线程。

让我们假设您有以下情况:

obj1 = obj2.getValFromDb(obj3.getSessionId(obj4.getId()));

在此,不能使用多线程,因为必须按顺序执行任务才能获得结果。所以你只需要一个线程......

但是在下面的例子中......

val = getValFromDb()+getValFromSRC1()+getValFromSRC2();

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

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

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

  

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