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

标签 java multithreading servlets asynchronous

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

最佳答案

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

关于java - 使用异步 servlet 时 Thread.Sleep() 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008888/

相关文章:

java - 找出用于在 Java 中实例化模板的类型

c# - 取消任务会引发异常

java - 无法在tomcat服务器上的eclipse上运行Web项目

java - 通过 HTTPURLConnection 发送 cookie

spring - 在 Spring Security 中的 DaoAuthenticationProvider 身份验证期间访问 HttpServletRequest

java - 扩展 Observable 的类的接口(interface)

java - 访问客户端服务器设置中的对象

java - 如何使主 GUI 线程 'wait' 直到一个单独的弹出窗口消失

java - 如何通过Java运行或访问linux系统目录

multithreading - C++ 11何时使用内存围栏?