Thread专题(7)中,如何高效利用线程池进行应用开发?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5474个文字,预计阅读时间需要22分钟。
此文作者收录于《系列文章+架构师必备》(系列)中。其中,重点介绍了在配置和调整线程池时使用的顶级选项,阐述了任务执行框架的过程,并强调了执行过程中需要关注的风险。线程池复用原理如下:
此文被笔者收录在系列文章 架构师必备(系列) 中
本节主要关注在配置和调整线程池时用的高级选项,讲述了任务执行框架的过程中需要注意的危险。线程复用原理如下:每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类的 run方法。 那么该类的 run() 方法中就是调用了 Runnable 对象的 run() 方法。
我们可以继承重写Thread 类,在其 start 方法中添加不断循环调用传递过来的 Runnable 对象。 这就是线程池的实现原理。循环方法中不断获取 Runnable 是用 Queue 实现的,在获取下一个 Runnable 之前可以是阻塞的。
一、线程池的组成
Java 中的线程池是通过 Executor 框架实现的,该框架中用到了 Executor,Executors, ExecutorService,ThreadPoolExecutor ,Callable 和 Future、FutureTask 这几个类。
本文共计5474个文字,预计阅读时间需要22分钟。
此文作者收录于《系列文章+架构师必备》(系列)中。其中,重点介绍了在配置和调整线程池时使用的顶级选项,阐述了任务执行框架的过程,并强调了执行过程中需要关注的风险。线程池复用原理如下:
此文被笔者收录在系列文章 架构师必备(系列) 中
本节主要关注在配置和调整线程池时用的高级选项,讲述了任务执行框架的过程中需要注意的危险。线程复用原理如下:每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类的 run方法。 那么该类的 run() 方法中就是调用了 Runnable 对象的 run() 方法。
我们可以继承重写Thread 类,在其 start 方法中添加不断循环调用传递过来的 Runnable 对象。 这就是线程池的实现原理。循环方法中不断获取 Runnable 是用 Queue 实现的,在获取下一个 Runnable 之前可以是阻塞的。
一、线程池的组成
Java 中的线程池是通过 Executor 框架实现的,该框架中用到了 Executor,Executors, ExecutorService,ThreadPoolExecutor ,Callable 和 Future、FutureTask 这几个类。

