线程池和并行处理 、线程池的作用

线程池通过统一分配、管理和监控线程,降低资源消耗,提高响应速度,增强系统稳定性。ExecutorService作为核心接口,提供任务执行解耦。Executors工厂类用于创建线程池实例。线程池避免频繁线程创建销毁,优化系统资源利用率,防止服务器过载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 线程池的作用:

为什么要用线程池: 


线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的
使用线程池对线程进行统一分配、调优和监控,有以下好处:

1、降低资源消耗;

2、提高响应速度;

3、提高线程的可管理性

Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池,而不用关心该任务是如何执行、被哪个线程执行,以及什么时候执行。

线程池可以节约系统资源,包括线程、内存资源等,这样可以避免创建过多的线程导致线程资源匮乏、系统频繁进行上下文切换以及内存溢出等问题,因为线程池中的每一个线程可能会轮询地执行多个任务 

线程池可以节省重新创建线程的时间,进而提高响应速度

ExecutorService是Java中对线程池定义的一个接口,它java.util.concurrent包中。Java API
对ExecutorService接口的实现有两个(ThreadPoolExecutor和ScheduledThreadPoolExecutor),所以这两个即是Java线程池具体实现类。除此之外,ExecutorService还继承了Executor接口(注意区分Executor接口和Executors工厂类),这个接口只有一个execute()方法

Executors只是一个工厂类,它所有的方法返回的都是ThreadPoolExecutor、
ScheduledThreadPoolExecutor这两个类的实例 

Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一
个执行线程的工具。真正的线程池接口是ExecutorService。 

 线程池的作用:

 线程池作用就是限制系统中执行线程的数量
 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。

为什么要用线程池: 

减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值