美文网首页
线程池底层原理和拒绝策略

线程池底层原理和拒绝策略

作者: 长孙俊明 | 来源:发表于2019-10-17 18:43 被阅读0次

    线程池底层原理

    用一个银行网点说明底层原理
    线程池相当于一个银行网点,假设网点有五个柜台(maximumPoolSize),而银行有固定的业务柜台是2个(相当于corePoolSize),当办理业务柜台满了,客人到候客区(workQueue)等待,侯客区超过三个人之后,启动另外三个柜台进行办理业务,此时五个柜台已经全部都在工作,如果候客区还是满了,银行网点就会采用拒绝进入银行办理业务(保安会说,现在银行里面已经满了,请到别处办理)。如果新开的三个柜台超时一定时间(keepAliveTime)没有人办理业务,则关闭柜台。

    拒绝策略

    有四种拒绝策略
    AbortPolicy 直接抛出异常阻住系统正常运行
    CallerRunsPolicy 将任务返回给调用者
    DiscardOldestPolicy 将队列中等待最久的任务删除掉,加入新的任务
    DiscardPolicy 直接抛弃任务,不给于任何处理不抛异常,也就是说,任务会丢失掉。

    相关文章

      网友评论

          本文标题:线程池底层原理和拒绝策略

          本文链接:https://www.haomeiwen.com/subject/ybyvmctx.html