java - 线程池中线程是如何创建和释放的

标签 java multithreading threadpool

我在很多地方读到,线程池减少了线程创建开销,从而提高了性能。但是,一旦线程完成执行其 run 方法,它就会进入死亡/终止状态,这意味着它可以再次重新启动。

那么,线程池如何处理线程的释放呢?它是否真的以某种方式保留线程来服务下一个任务,或者每次提交任务时在内部创建新线程?

最佳答案

线程池内部有一个列表,它是在有需求时使用的线程的占位符,并在完成执行时将它们添加到此列表中,或者在终止时创建一个新线程,并根据您是否要求缓存或固定线程池通过增加或减少数量来维护它们。

关于java - 线程池中线程是如何创建和释放的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462260/

相关文章:

java - 并行化任务但保留输出中的输入顺序

java框架和标签

Java 编译器 run() 方法

java - Activity 的实例变量未在 AsyncTask 的 onPostExecute 中设置或如何将数据从 AsyncTask 返回到主 UI 线程

c++ - pthread C++ 中的 Obj-C performSelector OnThread

c# - 我怎样才能有两个独立的任务调度程序?

Java 堆栈空间与最大服务器请求线程

java - 使用 ClassLoader.getResource() 的正确路径?

java - 是否可以指向特定的 JPanel

python - 无法捕获线程程序中的异常