zoukankan      html  css  js  c++  java
  • 线程池工作队列饱和策略

    线程池工作队列饱和策略

    Java线程池会将提交的任务先置于工作队列中,在从工作队列中获取(SynchronousQueue直接由生产者提交给工作线程)。

    那么工作队列就有两种实现策略:无界队列和有界队列。

    无界队列不存在饱和的问题,但是其问题是当请求持续高负载的话,任务会无脑的加入工作队列,那么很可能导致内存等资源溢出或者耗尽。

    而有界队列不会带来高负载导致的内存耗尽的问题,但是有引发工作队列已满情况下,新提交的任务如何管理的难题,这就是线程池工作队列饱和策略要解决的问题。

    无界队列不存在饱和的问题,但是其问题是当请求持续高负载的话,任务会无脑的加入工作队列,那么很可能导致内存等资源溢出或者耗尽。

    而有界队列不会带来高负载导致的内存耗尽的问题,但是有引发工作队列已满情况下,新提交的任务如何管理的难题,这就是线程池工作队列饱和策略要解决的问题。

    饱和策略分为:Abort 策略, CallerRuns 策略,Discard策略,DiscardOlds策略。

    当工作队列满了,不同策略的处理方式为:

    1.Abort策略:默认策略,新任务提交时直接抛出未检查的异常RejectedExecutionException,该异常可由调用者捕获。

    当工作队列满了,不同策略的处理方式为:

    1.Abort策略:默认策略,新任务提交时直接抛出未检查的异常RejectedExecutionException,该异常可由调用者捕获。

    程序抛出了RejectedExecutionException

    程序抛出了RejectedExecutionException

  • 相关阅读:
    ffplay 2.5.3 媒体播放器
    MinGW/MSYS 交叉编译环境搭建
    python chm 中文帮助 (2.7 和 3.4)
    wx.html2.WebView在 target="_blank" or rel="external" 没有反映的解决方法
    韩星5,6号 一锅双星技巧
    暖房子工程
    CStringUtf8ToUnicode
    燃气灶中心炉芯帽子生锈了,如何拆不下来?
    翻窗户消失的百岁老人/百岁老人跷家去 中文字幕
    CPinyin unicode汉字查找拼音(支持多音字)
  • 原文地址:https://www.cnblogs.com/panxuejun/p/8630651.html
Copyright © 2011-2022 走看看