/**
* 线程池:
* 主要特点:
* 线程复用,控制最大并发数,管理线程
* 第一:降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
* 第二:提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。
* 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,
* 还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
*/
public static void main(String[] args) {
ExecutorService executorService=Executors.newFixedThreadPool(5);
//一池子5个工作线程,类似一个银行有五个受理窗口
ExecutorService executorService1=Executors.newCachedThreadPool();
//执行很短期异步任务,线程池根据需要创建新线程,但在先前构建的线程可用时将重用它们,可扩容,遇强则强
try{
//模拟有10个顾客过来银行办理业务,目前池子里面有五个工作人员提供服务
for(int i=1;i<=10;i++){
executorService1.execute(()->{
System.out.println(Thread.currentThread().getName()+" 办理业务");
});
}
}catch(Exception exception){
}finally {
executorService.shutdown();
}
}
线程池工作原理:
线程的拒绝策略: