【发布时间】:2010-05-06 09:31:02
【问题描述】:
我使用运行 servlet 的 Tomcat 开发了一个简单的服务器。
servlet 调用命令行程序 - 执行大约需要 20 秒,然后通过 JSON 将结果返回给用户。问题是 - 如果我同时发出 2 个以上的请求,则 servlet 会阻塞,直到前面的请求之一完成。
下面是一个例子——“Im in”是servlet的顶部,结果列表是在servlet执行之后。所有请求都是同时提出的 - 但您可以清楚地看到它们没有同时处理。为了同时处理所有请求,我需要在 tomcat 中更改什么设置?
算我一个 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE 算我一个 FVFNT01 STOP_IDLE FVFNT03 STOP_IDLE FVFNT16 STOP_IDLE FVFNT17 STOP_IDLE【问题讨论】:
-
我不明白你的输出。尝试添加线程名称,以便您可以查看哪些线程处理您的请求。您可以通过调用 Thread.currentThread().getName() 来获取当前线程名称。此外,尝试将您的“Im in”消息与结果“关联”,即通过记住操作的开始时间并将其与结果一起写入(原子计数器会更好)。
标签: java tomcat servlets multithreading