Java CompletionService 如何管理多个任务提交?

How does Java CompletionService manage multiple task submits?

我需要知道当您提交的任务超过当前池大小时,Java 会如何处理。我有以下代码:

Executor executor = Executors.newFixedThreadPool(2); //2 threads
CompletionService<MyCallable> serv = new ExecutorCompletionService<MyCallable>(executor);
for (int i=0; i<500; i++){
         serv.submit(new MyCallable(i));
}

如果 submit 是阻塞调用,有什么线索吗?或者如果线程都忙,它会拒绝任务吗?

谢谢大家

它维护一个任务队列,一旦任务添加到队列,就会submitreturns。它不会等待线程开始执行任务。