获取期货 Java 中的 ID

发布于 2024-11-02 00:03:17 字数 478 浏览 3 评论 0原文

我有以下代码:

for (int i = 0; i < nComp; i++) {
    Callable<Long> worker = new WSCaller(compConns[i]);
    col.add(worker);
}
List<Future<Long>> results=null;
results = executor.invokeAll(col, timeout, TimeUnit.SECONDS);

for (Future<Long> future : results) {
    if ( !future.isDone() ) {
        // here I need to know which future timed-out ...               
    }
}

正如代码中所指出的...我怎样才能知道哪个 Future 超时了?

谢谢

I have the following code:

for (int i = 0; i < nComp; i++) {
    Callable<Long> worker = new WSCaller(compConns[i]);
    col.add(worker);
}
List<Future<Long>> results=null;
results = executor.invokeAll(col, timeout, TimeUnit.SECONDS);

for (Future<Long> future : results) {
    if ( !future.isDone() ) {
        // here I need to know which future timed-out ...               
    }
}

As pointed out in the code ... How can I know which Future timed-out ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小…红帽 2024-11-09 00:03:17

请参阅解决方案此处

你必须实现自己的计数器才能知道你的索引是什么。

see the solution here

you have to implement your own counter to know what index your are up to.

微凉 2024-11-09 00:03:17

futures 按照与提交的 callables 相同的顺序返回,因此 callables 列表和 futures 列表中的索引之间存在一一对应的关系。

您可以使用传统的 for 循环,

for (int i=0; i<results.size(); i++) {
   Future<Long> future = results.get(i);
   Callable<Long> callable = col.get(i);
}

或维护索引,

int index = 0;
for (Future<Long> f: results) {
   Callable<Long> c = col.get(index++);
}

The futures are returned in the same order as the submitted callables, so there is a one to one correspondence between the indices in the callables list and futures list.

You can either use a traditional for loop,

for (int i=0; i<results.size(); i++) {
   Future<Long> future = results.get(i);
   Callable<Long> callable = col.get(i);
}

or maintain an index,

int index = 0;
for (Future<Long> f: results) {
   Callable<Long> c = col.get(index++);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文