有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以使用多线程同时多次进行相同的rest调用吗?

我正在使用java,并将使用Zephyr的api进行一些rest调用。我认为使用的api不会影响我提出问题的可能性。我只是想知道是否可以使用多线程同时多次调用同一个rest?每个调用都将检索不同的数据,但它们并不是都获取相同的数据

这只是用于检索数据,而不是写入数据

如果这是可能的,风险是什么?这是推荐的吗


共 (2) 个答案

  1. # 1 楼答案

    当然,如果你以正确的方式实施,它将提高你的绩效。如前所述,您只需要小心实现,以避免安全和性能问题。我建议有一个线程池,这样你就可以管理多个线程,这些线程同时执行你正在做的REST调用

    ThreadPoolExecutor会有帮助

    你可以使用Executors.newFixedThreadPool/Executors.newCachedThreadPool。两个都很好用

    您可以创建一个任务(实现Callable)来执行REST调用或调用,然后使用ThreadPoolExecutor中的invokeAll()(您希望在这里包括任务列表)

    希望对你有帮助

    致以最良好的祝愿

  2. # 2 楼答案

    是的,你能做到。即使是写数据也不应该是个问题。唯一的风险是,您可能会更快地过载数据连接,或者您的服务器可能不允许这样做。其他风险是多线程处理不当所固有的