一:线程池的概念
线程的创建和销毁都需要映射到操作系统,故付出的代价很高。为了避免频繁的创建线程,销毁线程以及方便线程的管理需要,线程池则应用而生。
二:线程池的优点
1)降低销毁资源:重复利用线程池中已经存在的线程,减少了线程的创建和消亡造成的性能开销。
2)提高了相应速率:当任务到达时,任务可以不需要等到线程创建就能够执行。
3)防止服务器过载:形成内存溢出,或者cpu耗尽。
4)提高线程的可管理性:线程时稀缺资源,若无限的创建线程,不仅会消耗资源,还会降低系统的稳定性,使用线程池可以统一的分配,调优和监控。
三:常见的线程池
1.CachedThreadPool
缓存池线程,如果线程池的长度超过处理需要,可灵活回收空闲线程,若无可回收,则创建新的线程。
public static void main(String[] args) {
ExecutorService pool = Executors.newCachedThreadPool();//创建对象
for(int i=0;i<=8;i++) {
pool.execute(() -> {
for(int j=0;j<=9;j++) {
System.out.println(Thread