【发布时间】:2015-01-24 20:20:07
【问题描述】:
我有一个将多个任务提交到 ExecutorService 的进程,比如 MyTask。我的任务请求来自外部服务的值,例如 ExternalService。我想要做的是让 ExternalService 批处理请求,比如每 100 个传入或每 1 秒一次,直到那个时候让 MyTask 线程暂停,直到他们得到答案:
public class MyTask implements Runnable {
@Override
public void run() {
try {
// .... code ....
ExternalData data = externalService.getData(id);
// ..... code after batch ...
}catch (Exception e){
}
}
}
我需要服务 externalService 暂停 MyTask 直到它批量操作(通过累积 100 个请求或等待 1 秒)并返回结果到任务继续。
解决这个问题的最佳方法是什么?
谢谢
【问题讨论】:
标签: java multithreading concurrency batch-processing