第一:线程池的好处
1 减少线程在创建和销毁上所消耗的时间以及系统资源的开销
2 提高响应速度,如果不使用线程池可能造成系统创建大量的线程池而消耗完系统内存
3 提高线程的可管理性
第二:线程池的分类
a类:
ThreadPoolExecutor通常使用Executors来创建。Executors 可以创建3种类型的线程池。
1 FixedThreadPool 创建使用固定数量的线程,适用于为了满足资源管理的需求,而需要限制当前线程数量的应用场景,适用于负载较高的服务器。
2 SingleThreadExecutor 创建单个线程,适用于需要保证顺序的执行各个任务;并且在任意时间点,不会有多个线程是活动的应用场景。
3 CacheThreadPool 是大小无界的线程池,适用于执行很多的短期异步任务的小程序,或者负载较轻的服务器。
b类:
ScheduledThreadPoolExecutor通常也是使用Executors来创建的。通常可以创建两种类型的。
1 ScheduledThreadPoolExecutor 适用于需要多个后台线程执行周期任务,同时为了满足资源管理的需求而需要限制后台线程的数量的应用场景。
2 SingleThreadScheduledExecutor 适用于需要单个后台线程执行周期任务,同时需要保证顺序地执行各个任务的应用场景。
第三:线程池涉及结构图