尽管这没有帮助,但这与GC的不确定性没有任何关系!(这是您的示例中的一个原因,但是即使我们“修复”了它以消耗内存并强制执行一个集合,它仍然不会最终确定)
执行者创建的Worker线程是内部类,它们具有对执行者本身的引用。(他们需要它能够看到队列,运行状态等!)正在运行的线程不会被垃圾回收,因此,在池中的每个线程都具有该引用的情况下,它们将使执行程序保持活动状态,直到所有线程都死掉为止。如果您不手动执行某些操作来停止线程,则它们将永远运行,并且您的JVM将永远不会关闭。

尽管这没有帮助,但这与GC的不确定性没有任何关系!(这是您的示例中的一个原因,但是即使我们“修复”了它以消耗内存并强制执行一个集合,它仍然不会最终确定)
执行者创建的Worker线程是内部类,它们具有对执行者本身的引用。(他们需要它能够看到队列,运行状态等!)正在运行的线程不会被垃圾回收,因此,在池中的每个线程都具有该引用的情况下,它们将使执行程序保持活动状态,直到所有线程都死掉为止。如果您不手动执行某些操作来停止线程,则它们将永远运行,并且您的JVM将永远不会关闭。