线称池饱和策略:DiscardOldestPolicy解释
前言
最近一直在线程池中游泳,对于四种的线称饱和策略,看了无数片CSDN文章,居然发现一堆博主连个DiscardOldestPolicy 策略都说不清楚,每次都是一句话,丢弃线称队列的旧的任务,将新的任务添加,我也是无语?那 什么叫旧的任务? 怎么算是旧的任务???
DiscardOldestPolicy 解释
我们知道,线称饱和状态(拒绝策略)一共分为4种:
ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。 【默认】
ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃线称队列的旧的任务,将新的任务添加
ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务 【谁调用,谁处理】
怎么算旧的任务?
到底抛弃的是什么任务?
在翻阅了无数资料后,发现了一个博主写的比较准确:
将最早进入队列的任务删除,之后再尝试加入队列 |
---|
另外一共博主写的也比较精准
当任务被拒绝添加时,会抛弃任务队列中最旧的任务也就是最先加入队列的,再把这个新任务添加进去。在rejectedExecution先从任务队列种弹出最先加入的任务,空出一个位置,然后再次执行execute方法把任务加入队列。 |
---|
结语
希望大家尽量博客尽量避免粘贴,认真考量后再进行编写博客。
来源参考
https://blog.csdn.net/xxj_jing/article/details/84835476 【Java-五种线程池,四种拒绝策略,三种阻塞队列】
https://www.jianshu.com/p/9fec2424de54 【java多线程-ThreadPoolExecutor的拒绝策略】
线称池饱和策略:DiscardOldestPolicy解释相关推荐
- java线程池饱和策略_干货:Java几种线程池的分析和使用。
原标题:干货:Java几种线程池的分析和使用. 利用线程池的优势: 1.降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 2.提高响应速度.当任务到达时,任务可以不需要等到线程创建 ...
- java线程池饱和策略_线程池的饱和策略-调用者执行 | 学步园
java并发编程实践阅读笔记之线程池的饱和策略 使用java的任务管理框架的线程池执行任务时,线程池的任务等待队列被填满时,饱和策略开始发挥作用.ThreadPollExecutor的饱和策略通过se ...
- Java线程池系列--饱和策略(拒绝策略)的使用(有实例)
原文网址:Java线程池系列--饱和策略(拒绝策略)的使用(有实例)_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍Java线程池的饱和策略(拒绝策略). 概述 Java线程池的饱和策略如下: ...
- 多线程池、饱和策略详解
一.序言 当我们需要使用线程的时候,我们可以新建一个线程,然后显式调用线程的start()方法,这样实现起来非常简便,但在某些场景下存在缺陷:如果需要同时执行多个任务(即并发的线程数量很多),频繁地创 ...
- java线程池拒绝策略_Java核心知识 多线程并发 线程池原理(二十三)
线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再从队列中取出任务来执行.他 ...
- 【多线程】线程池拒绝策略详解与自定义拒绝策略
线程池的拒绝策略 ThreadPoolExecutor内部有实现4个拒绝策略,默认为AbortPolicy策略 CallerRunsPolicy:由调用execute方法提交任务的线程来执行这个任务 ...
- java中有界队列的饱和策略(reject policy)
文章目录 AbortPolicy DiscardPolicy DiscardOldestPolicy CallerRunsPolicy 使用Semaphore java中有界队列的饱和策略(rejec ...
- java线程池拒绝策略_Java线程池ThreadPoolExecutor的4种拒绝策略
最近在做大批量数据采集转换工作,基础数据在本地但是需要调用网络资源完成数据转换.多方面原因在保证良好运行情况下,最多开5个线程进行网络资源调用.方案是基础数据在数据库分页,循环遍历每一条数据,创建调用 ...
- 【Java 并发编程】线程池机制 ( 线程池阻塞队列 | 线程池拒绝策略 | 使用 ThreadPoolExecutor 自定义线程池参数 )
文章目录 一.线程池阻塞队列 二.拒绝策略 三.使用 ThreadPoolExecutor 自定义线程池参数 一.线程池阻塞队列 线程池阻塞队列是线程池创建的第 555 个参数 : BlockingQ ...
最新文章
- JavaScript版本的策略模式
- php mysqli还原数据库,PHP mysqli操作数据库
- synchronized细节问题
- Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决
- Setuptool+pip安装
- 《课程的反思与重建--我们需要什么样的课程观》之学习体会
- 51Nod-1081 子段求和【前缀和】
- MySQL(17)-----数值函数
- 2022R1快开门式压力容器操作考试模拟100题模拟考试平台操作
- 非度量多维标度_R软件包vegan教程 2.1非度量多维度标度变换
- t’触发器真值表和状态方程_T触发器的特性表.ppt
- 2022年成考(专升本)考试政治练习题及答案
- 打车日记 - 上班迟到
- linux下如何查看hdmi设备,如何在Linux中设置HDMI数字播放 | MOS86
- [转]office2010一直卡在“正在受保护的视图中打开”
- 使用canvas绘制笑脸
- [MATLAB] 主成分分析法 求矩阵的权重
- Java List去重 Lis集合去重 List去重效率对比 List去重复元素效率对比 List去重效率
- dataframe建一个空的,pySpark创建空DataFrame
- 在uni-app当中引入本地图片注意事项以及阿里矢量图iconfont.css当中文件查找失败:‘./iconfont.eot解决办法