面试问题Java多线程的线程分配

**Java多线程问题 **

线程池的参数如下:
核心线程数:10
最大线程数:20
工作队列:100

问有30个线程提交到线程池,是怎么分配的?
我的回答是:核心线程分配10个,工作队列分配20个。因为之前学习看到的是提交顺序是核心线程—>工作队列—>最大线程—>拒绝策略。但是面试官笑了笑问道“那按你这么说,只要工作队列够大,就永远不会创建非核心线程了,所有任务都等着核心线程来处理呗?
这里面试官很明显是否定了 我的看法,我也被问懵了,不知道咋解释,求解答

前10个线程会立即被分配给核心线程处理,接下来的20个线程会进入工作队列等待被执行。如果工作队列已满,并且仍有新的线程提交,则会创建新的非核心线程来处理任务,直到达到最大线程数。需要注意的是,如果线程池中的核心线程和工作队列都已满,并且新的线程数量超过最大线程数,则会执行线程池的拒绝策略来处理多余的任务。 如有帮助给个采纳谢谢