Java ExecutorCompletionService如何知道返回哪个任务

时间:2017-08-29 08:08:33

标签: java concurrency executorservice

ExecutorService serv = Executors.newFixedThreadPool(5);
CompletionService<Integer> servive = new ExecutorCompletionService<>(serv);

for (int i = 0; i < 5; i++) {
  servive.submit(new MyTask(i));
}

for (int i = 0; i < 5; i++) {
  Future<Integer> f = null;
  try {
    f = servive.take();
  } catch (InterruptedException e) {
    e.printStackTrace();
  }
  //f.get()
}

我想知道在第一个结果(f.get())中完成了哪个任务或可调用 我该怎么做,或者其他什么功能?

1 个答案:

答案 0 :(得分:0)

好吧,它完全依赖于JVM和任务如何由JVM处理。