纸上谈兵之二线程池的分类用法

本文详细介绍了Java中几种常见的线程池实现:newFixedThreadPool创建固定长度的线程池;newCachedThreadPool创建可缓存的线程池;newSingleThreadExecutor创建单线程的Executor;newScheduledThreadPool创建定时或延时任务的线程池;newWorkStealingPool创建基于ForkJoin框架的线程池。

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


newFixedThreadPool() 将创建一个固定长度的线程池,每当提交一个任务时就创建一个线程,直到达到线程池的最大数量,这是线程池的规模将不再变化,如果某个线程由于发生了未预期的Exception而结束,那么线程池会补充一个新的线程。

newCachedThreadPool() 将创建一个可缓存的线程池,如果线程池的当前规模超过了处理需求时,那么将回收空闲的线程,而当需求增加时,则可以添加新的线程,线程池的规模不存在任何限制。

newSingleThreadExecutor() 是一个单线程的Executor,它创建单个工作者线程来执行任务,如果这个线程异常结束,会创建另一个线程来替代;newSingleThreadExecutor能确保依照任务在队列中的顺序来串行执行,线程池中的任务使用无界队列存储。

newScheduledThreadPool() 创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务。


newWorkStealingPool();  这两个方法用于创建ForkJoin框架中用到的ForkJoinPool线程池,它默认使用当前机器可用的CPU个数作为并行数。

newSingleThreadScheduledExecutor()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值