什么是线程池
线程池就是一个可以复用线程的技术。、
不使用线程池的问题
如果用户每发起一个请求,后台就创建一个新线程来处理,下次任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。
谁代表线程池?
JDK5.0起提供了代表线程池的接口:ExecutorService
如何得到线程池对象
方式一:使用ExecutorService的实现类ThreadPoolExecutor自创建一个线程池对象。
ExecutorService |
ThreadPoolExecutor |
方式二:使用Executors(线程池工具类)调用方法返回不同特点的线程池对象。
ThreadPoolExecutor构造器参数说明
参数一 | 指定线程池线程数量(核心线程) | corePoolSize | 不能小于0 |
参数二 | 指定线程可支持的最大线程数 | maximumPoolSize | 最大数量>=核心线程数量 |
参数三 | 指定临时线程的最大存活时间 | keepAliveTime | 不能小于0 |