线程池(Thread Pool)和Lambda表达式是Java编程中两个重要的概念,它们各自在并发编程和函数式编程中发挥着重要作用。
**线程池(Thread Pool)**
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程,每个线程都使用默认的优先级运行,并处于守护线程模式。如果主线程退出,即使没有完成后台线程,JVM也会退出。因此,使用线程池进行多线程处理的最大好处就是减少了在创建和销毁线程上花费的时间以及系统资源的开销,解决了资源不足的问题。
四种线程池
Java中有四种线程池:
缓存线程池:
定长线程池:
单线程线程池:
周期性任务定长线程池:
对获取以上四种线程池的对象,用的都是:ExecutorService 对象名 = Executors.newCachedThreadPool( ) ;
缓存线程池:
缓存线程池 (长度无限制)
执行流程:
判断线程池是否存在空闲线程
存在则使用
不存在,则创建线程 并放入线程池