线程池的拒绝策略

一.线程池的拒绝策略在什么时候启用

  线程池:
          //参数最多的构造方法
             public ThreadPoolExecutor(int corePoolSize,
                 int maximumPoolSize,
                 long keepAliveTime,
                 TimeUnit unit,
                 BlockingQueue<Runnable> workQueue,
                 ThreadFactory threadFactory,
                 RejectedExecutionHandler handler);
                    
    参数解释:
        1 corePoolSize:线程池核心大小
        2 maximumPoolSize:最大线程池大小
        3 keepAliveTime和unit合在一起用于指定线程池中空闲线程的最大存活时间。
        4 workQueue:工作队列
        5 threaaadFactory: 用于创建工作者线程的线程工厂
        6 handler: 线程池饱和时,封装被拒绝任务的处理策略。
                抽象方法:abstract void rejectedExecution(Runnable r,ThreadPoolExecutor executor);
                r代表被拒绝的任务,executor代表拒绝任务r的线程池实例。

我们来了解一下线程池执行任务基本过程

      1.每过来一个任务,就启动一个核心线程,去执行任务
      2.如果核心线程都用完了,再过来任务,存入阻塞队列
      3.如果阻塞队列也存满了,再过来任务,可以再启动线程,直到达到最大线程数量
      4.如果达到了最大线程数量,再过来任务,启动拒绝策略

由此可知,任务数量达到了最大线程池数量,并且再过来任务时会启动拒绝策略。


二.拒绝策略的操作说明

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值