0

我需要知道当您提交的任务多于当前池大小时,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));
}

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

谢谢你们。

4

1 回答 1

1

它维护一个任务队列,并submit在任务添加到队列后立即返回。它不会等待线程开始执行任务。

于 2021-05-20T03:40:07.873 回答