使用异步servlet时Thread.Sleep()的替代方法?

时间:2014-06-03 06:59:06

标签: java multithreading servlets asynchronous

我尝试做的是等待来自特定网页中用户的所有请求(他们同时进入),然后处理它们一个servlet,检查哪些请求为某个参数发送了正确的值,并将最终结果输出给所有用户。我为此使用asyncContexts,并且我当前正在为他的请求中的每个用户使用Thread.Sleep(1000),以便仅在完全收集数据时输出最终结果。但是,我已经读过Thread.Sleep(1000)在Web应用程序中使用非常低效,并且想知道是否可以建议其他方法来确保在输出结果之前收集所有数据。如果有必要,我可以提供代码,但是,它有点乱。

1 个答案:

答案 0 :(得分:1)

您似乎知道Servlet上的请求数量。因此,在这种情况下,您可以使用CountDownLatch,Semaphore或Java 5并发API中提供的任何Blocking集合。