JDK自带的线程池

1、newFixedThreadPool( 固定大小的线程池 )

线程池的线程数量始终保持恒定,如果有线程由于异常结束,则线程池会补充新的线程。当线程池中的所有线程都处于活动状态时,新提交的任务将会等待,直到有线程空闲。

2、newCachedThreadPool( 可缓存线程池 )

线程池会根据需要创建新线程,并在空闲线程超过60秒未被使用时会被终止回收,以减少系统资源的消耗。这意味着它旨在尽可能地重用线程,但如果线程需求增长迅速,它也可以快速创建新线程。

3、newSingleThreadExecutor( 单线程线程池 )

只有一个工作线程的线程池,所有的任务都会在这个单一的工作线程中按照提交的顺序进行执行,确保了任务的串行执行。

4、newScheduledThreadPool( 定时/周期性执行任务的线程池 )

它扩展了线程池功能,允许延迟或定期执行任务。适合用来执行定时任务或具有固定延时的任务序列。虽然 Executors 提供了便捷的工厂方法创建线程池,但在实际开发中需要注意的是,对于 newFixedThreadPool 和 newSingleThreadExecutor 等这些方法创建的线程池,若线程池中线程数量达到上限且线程都阻塞的情况下,若继续提交任务可能导致拒绝策略触发。同时,直接使用 Executors 创建线程池时,默认配置可能存在一些潜在风险,例如无界队列可能导致OOM等问题,因此推荐在自定义线程池时明确设置相关的参数,如线程数量、队列大小、拒绝策略等。

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值