【发布时间】:2011-11-28 12:57:52
【问题描述】:
我正在寻找一种方法来限制对 java 中方法的访问不超过每 X 秒一次。这是我的情况:
我想用多个线程并行运行这段代码:
private MyService service;
public void run() {
// Send request to remote service
InputStream response = service.executeRequest();
// Process response
... some more code
}
executeRequest() 方法向远程服务器发送一个 http 请求(这不是我的,我无权访问它的实现)并等待来自服务器的响应。然后它对数据进行一些处理。 我想让许多线程并行运行。我的问题是如果同时发送太多请求,远程服务器会崩溃。所以我想要一些方法来确保 executeRequest() 方法每秒不会被调用超过一次。
你知道我如何在 java 中做到这一点吗?谢谢
【问题讨论】:
-
在服务实例可用之前限制并发执行的数量并阻止新调用怎么样?您是否为远程服务器使用任何特定技术?
-
远程服务器不是我的。 MyService.executeRequest 向远程服务器发送一个 http 请求并等待响应。我无法控制它。
标签: java concurrency