Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Http获取响应时间_Java_Multithreading_Spring_Get - Fatal编程技术网

Java Http获取响应时间

Java Http获取响应时间,java,multithreading,spring,get,Java,Multithreading,Spring,Get,我有一个SpringWeb应用程序,在这个应用程序中,我在几个URL上调用Http GET,并用结果更新数据库。我的问题是,你能跑多快(或慢)? 我是否应该使用第二个线程对URL列表执行此操作,并在主线程中等待此操作完成?例如,如果其中一个URL没有响应(或者速度慢),会阻止我的程序吗?或者它会立即响应相应的代码吗?在高延迟网络(internet)上的远程I/O操作通常缓慢。如果您想要访问的远程服务调用(在您的示例中获取请求)彼此独立,即,您不需要一个调用的结果来调用另一个调用,那么通过启用异步

我有一个SpringWeb应用程序,在这个应用程序中,我在几个URL上调用Http GET,并用结果更新数据库。我的问题是,你能跑多快(或慢)?
我是否应该使用第二个线程对URL列表执行此操作,并在主线程中等待此操作完成?例如,如果其中一个URL没有响应(或者速度慢),会阻止我的程序吗?或者它会立即响应相应的代码吗?

在高延迟网络(internet)上的远程I/O操作通常缓慢。如果您想要访问的远程服务调用(在您的示例中获取请求)彼此独立,即,您不需要一个调用的结果来调用另一个调用,那么通过启用异步处理来引入并行性是非常容易/直接的。可能是一个很好的候选人。如果他们相互依赖,情况就复杂一点。您可以使用一个名为的编程范例和相应的实现,如。有关更多详细信息,请参阅


如果在一个请求/请求周期中有许多这样的调用,那么就响应时间性能而言,这绝对值得付出努力。

spring中有一个用于异步查询的功能。我知道,但问题是:在这种情况下这是个好主意/必要吗?这完全取决于您的用例。如果必须执行的所有用户操作都取决于这些调用后获得的结果,那么这是个坏主意。但是如果有其他操作/任务可以独立于这些调用的结果继续进行,然后你可以继续。从用户的角度考虑。如果你的应用程序的响应能力可以通过异步调用来提高,那么我建议你继续这个实现。