java - 在 Spring MVC 请求处理程序中调用 Thread.currentThread().sleep(2000) 的第二个请求有什么影响?

标签 java multithreading spring-mvc concurrency thread-sleep

在调用第三方服务为用户更新某些实体时,我需要等待 Spring MVC 请求处理程序中的条件。

平均等待时间约为 2 秒。

我正在调用 Thread.sleep 以允许完成远程调用并更新数据库中的实体:

Thread.currentThread().sleep(2000);         

在此之后,我从数据库中检索更新的模型并显示 View 。

但是,对于到达此 Controller /请求处理程序进行处理的并行请求会产生什么影响?

并行请求也会经历等待吗?

或者它们会被派生到单独的线程中,因此不受当前请求所经历的延迟的影响?

最佳答案

正在做的事情有时可能会奏效,但这不是可靠的解决方案。

Java Future 接口(interface)以及配置的 ExecutorService 允许您开始某些操作并让一个或多个线程等待结果准备就绪(或可选地等待一定时间)。

您可以在此处找到它的文档: http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html

关于java - 在 Spring MVC 请求处理程序中调用 Thread.currentThread().sleep(2000) 的第二个请求有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558626/

相关文章:

java - 我应该使用哪个 Eclipse 版本进行 Google GWT 和 Google App Engine 开发?

Java nio服务端客户端异步

java - 无法通过@PathVariable绑定(bind)到Mono<String>?

java - Spring MVC + 数据表 : bind array[] parameter

java - 将 JSON 数组传递给 Java Springs Controller

java - 为什么使用 Long.valueOf(...) 而不是长文字?

java - 在哪里可以找到这些函数的本地实现?

java - 登录按钮 facebook android 不会重定向到新 Activity

c++ - 这个异步技巧会起作用还是当我访问它时状态会悬空?

java - 如何保证ConcurrentHashMap的get()总是返回最新的实际值?