多线程http客户端和tomcat 7

时间:2012-12-13 23:18:50

标签: java multithreading http tomcat

我很困惑我应该如何在独立的Java应用程序中处理http会话。以下是详细信息:

java客户端连接到3个tomcat 7 servlet。 当客户端启动时,它每隔3分钟启动2个预定的线程/下载器和上传器/轮询2个servlet。它们都将jsessionid cookie检索并存储在各自类的私有字段中。 这导致tomcat中的2个会话在webapp的生命周期中重用。到目前为止一切都很好。

有第三个服务/连接到第三个servlet /使用线程“WebDispather”类的多个实例,它类似于上面提到的线程检索和存储会话,但这次 - 在私有静态字段中。 调度程序使用频繁,可能会有多达150个实例并发运行,具体取决于负载。调度程序线程大约一秒钟到达servlet。

使调度程序sessionid字段非静态会为每个实例创建一个会话 - 不好。

将所有调度程序线程绑定到同一个tomcat http会话有什么含义?

谢谢


编辑: 虽然调度线程绑定到同一会话,但会话本身不包含任何信息。 Servlet只处理请求参数。 即调度员1:

本地主机/ messagecontrol ID = 123&安培;状态

调度程序主题2: ?本地主机/ messagecontrol ID = 123&安培;状态=成品

// Servlet处理并忘记id和状态

1 个答案:

答案 0 :(得分:0)

据我所知,所有客户端线程都会共享相同的会话信息,如果任何不想共享的信息,这将是您代码中的错误

如果您担心代码中创建的线程数(性能方面),consider implementing a thread pool