线程池三大考点

Executors工具类的3种实现方式

//		单例线程池
        ExecutorService executorService = Executors.newSingleThreadExecutor();
//        固定大小线程池
        ExecutorService executorService1= Executors.newFixedThreadPool(5);
//        缓存线程池
        ExecutorService executorService2 = Executors.newCachedThreadPool();

ThreadPoolExecutor七大参数

  • corePoolSize:核心池大小
  • maximumPoolSize:线程池最大容量
  • keepAliveTime:存活时间,线程池中的线程数量大于corePoolSize,才会生效,而在此时某线程没有可执行的任务情况下,存活keepAliveTime时间之后,被销毁
  • TimeUnit 存活时间的单位
  • BlockingQueue:等待队列,存储等待执行的任务
  • ThreadFactory:线程工厂,用于创建线程
  • RejectedExecutionHandler:拒绝策略
public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,
                              RejectedExecutionHandler handler)

4种拒绝策略

AbortPolicy:直接抛出异常
在这里插入图片描述

CallerRunsPolicy:谁调用谁处理
在这里插入图片描述

DiscardPolicy:放弃任务,不抛出异常
在这里插入图片描述

DiscardOldestPolicy:
尝试与等带队列中最前面的任务去争夺,不抛出异常

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值