JDK有哪些线程池,各有哪些特点,每个线程池什么场景下使用

JDK自带的线程池,使用Executors创建。
(Executors:创建线程池的工具类)

ExecutorService es = Executors.newFixedThreadPool(int nThreads);

1)newFixedThreadPool:
固定线程数量,该线程池中的线程数量始终不变,不会再创建新的线程,也不会销毁已经创建好的线程,自始至终都是那几个固定的线程在工作。采用队列的存放方式,不能及时处理任务。
用于负载比较重的服务器,为了资源的合理利用,需要限制当前线程数量;

2)newCachedThreadPool:
线程数量不确定,根据实际情况动态调整。线程池中的线程都有一个“保持活动时间”的参数,如果线程池中的空闲线程的空闲时间超过该“保持活动时间”则立刻停止该线程,默认的“保持活动时间”为60s。
用于并发执行大量短期的小任务,或者是负载较轻的服务器;

3)newScheduledThreadPool:
控制线程池内线程定时或周期性执行任务。
用于需要多个后台线程执行周期任务,同时需要限制线程数量的场景;

4)newSingleThreadExecutor:
只有一个线程,每次只能执行一个线程任务,按FIFO方式执行任务队列中的任务,不能及时处理任务。
用于串行执行任务的场景,每个任务必须按顺序执行,不支持并发执行;

5)newSingleThreadScheduledExecutor:
只有一个线程,可以控制线程池内线程定时或周期性执行某任务。
用于需要串行执行周期任务的场景;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值