该文章用于整理线程池和demo,大部分文字选取妈妈再也不用担心你不会使用线程池了(ThreadUtils) - 简书 (jianshu.com),大家可以直接观看该文章,后面我会针对该作者写的线程池工具类写一个详细的思路解释
线程池由来
在上一篇文章中,使用线程需要new Thread,如果在一个程序中需要多次使用线程,便意味着需要多次创建并销毁线程。而创建并销毁线程的过程都会消耗内存,而在java中也是极其看重内存资源的,所以就有了线程池的概念
线程池优点
- 降低消耗资源,通过重复利用已创建的线程降低了创建-销毁的消耗
- 提高响应速度,当需要异步的时候直接调用省去创建的流程
- 提高管理性,线程池里面的所有线程可以统一分配、监控
创建线程池
我们创建时,一般使用它的子类:ThreadPoolExecutor. 结构如下
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
网友评论