线程池中的现有线程使用新的Thread()创建一个新线程.start()

时间:2017-07-18 10:40:35

标签: java multithreading threadpool threadpoolexecutor

我在java中创建了一个核心池大小为40的线程池。

假设目前它只有10个线程。如果属于此线程池的其中一个线程创建了一些新线程,它们是否只是该线程池的一部分,还是它们是独立的?

2 个答案:

答案 0 :(得分:0)

新创建的线程不应该是它的一部分。如果您通过执行程序服务使用ThreadPool,那么您必须提交甚至子线程作为此执行程序服务的ThreadPool的一部分。

答案 1 :(得分:0)

您的简短回答是,从提交给线程池的任务中产生的额外线程不会被计入池容量的一部分,因为您没有明确提交或要求线程池启动它。

换句话说,池不跟踪该衍生线程的运行状态。程序员正在创建线程实例并启动它。

此外,对于Java线程池,容量大约是特定时间点 RUNNING 任务的数量,任务是RUNNABLECALLABLE,因此您始终可以 SUBMIT 不仅可以将池容量任务添加到池中,而且不要求在任何时间点运行超过容量的任务。