请帮助我理解 newFixedThreadPool (或 Cached)的内部流程
当我们编写以下语句时,ExecutorService e=Executors.newFixedThreadPool(3);
直到3个execute方法,将创建三个线程,当调用第4个execute方法时,不会创建新线程,但工作将等待线程空闲。
我不明白这一点“不会创建新线程,但工作将等待线程空闲”。我认为当runnable1将被赋予第一个创建的线程时,一旦runnable1的run方法完成,Thread1的run也将完成,thread1将无法调用runnable4的run方法。那么,java 是如何用 3 个线程来执行 5 个 Runnable 的呢?