• ThreadPoolTaskExecutor


    1.当线程池中的线程数量小于corePoolSize,就会创建新的线程来处理添加的任务直至线程数量等于corePoolSize。

    2.当线程池中的线程数量大于等于corePoolSize且阻塞队列(workQueue)未满,就会把新添加的任务放到阻塞队列中。

    3.当线程池中的线程数量大于等于corePoolSize且阻塞队列满了,就会创建线程来处理添加的任务直到线程数量等于maximumPoolSize

    4.如果线程池的数量大于maximumPoolSize,会根据RejectedExecutionHandler策略来拒绝任务。AbortPolicy就是其中的一种拒绝任务策略(默认)。

    Reject策略预定义有四种:
    (1)ThreadPoolExecutor.AbortPolicy策略,是默认的策略,处理程序遭到拒绝将抛出运行时 RejectedExecutionException。
    (2)ThreadPoolExecutor.CallerRunsPolicy策略 ,调用者的线程会执行该任务,如果执行器已关闭,则丢弃.
    (3)ThreadPoolExecutor.DiscardPolicy策略,不能执行的任务将被丢弃.
    (4)ThreadPoolExecutor.DiscardOldestPolicy策略,如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程).

    大佬跳转

  • 相关阅读:
    《大型网站技术架构》读后感
    质量属性
    课堂作业02
    课堂作业01
    《软件构架实践》读后感06
    《软件构架实践》读后感05
    Storm系列三: Storm消息可靠性保障
    Storm系列二: Storm拓扑设计
    Storm系列一: Storm初步
    网络层协议
  • 原文地址:https://www.cnblogs.com/dztHome/p/11777771.html
Copyright © 2020-2023  润新知