2021-06-14 七大参数,四种拒绝策略
//四个拒绝策略
//new ThreadPoolExecutor.AbortPolicy(); //银行满了 还有人进来 不再处理,抛出异常
//new ThreadPoolExecutor.CallerRunsPolicy(); //银行满了 还有人进来 哪来的去哪里
//new ThreadPoolExecutor.DiscardPolicy(); //银行满了 还有人进来 不再处理,不会抛出异常
//new ThreadPoolExecutor.DiscardOldestPolicy(); //银行满了 尝试和最早的竞争,也不会抛出异常
public class Demo02 {// 最大线程到底该如何定义//CPU密集型,几核我们就定义为几个数,保持CPU效率最高//IO密集型,判断你程序组十分耗IO的线程,大于这个数就OK,比如15个大型任务,IO十分占用资源就用30个数public static void main(String[] args) {//获取CPU核数System.out.println(Runtime.getRuntime().availableProcessors());ExecutorService threadPool = new ThreadPoolExecutor(2, //核心线程2Runtime.getRuntime().availableProcessors(), //最大线程Runtime.getRuntime().availableProcessors()获取CPU核数,或者填数字53, TimeUnit.SECONDS, //超过等待3秒释放线程回到核心2个数new LinkedBlockingDeque<>(3),//等待区Executors.defaultThreadFactory(), //默认线程工厂,一般不会改new ThreadPoolExecutor.DiscardOldestPolicy()); //银行满了 尝试和最早的竞争,也不会抛出异常try {for (int i = 1; i <= 9; i++) {//使用线程池创建线程threadPool.execute(()->{System.out.println(Thread.currentThread().getName()+" OK");});}} catch (Exception e) {e.printStackTrace();} finally {//线程池用完需关闭threadPool.shutdown();}}
}
2021-06-14 七大参数,四种拒绝策略相关推荐
- 线程池三大方法,七大参数,四种拒绝策略
线程和进程: 进程: 一个程序,是执行程序的一次执行过程. 一个进程往往包含若干个线程,线程是cpu调度和执行的单位. Java默认有2个线程:main.GC 池化技术: 01:程序的运行,本质 :占 ...
- 线程池的四种拒绝策略
一.前言 线程池,相信很多人都有用过,没用过相信的也有学习过.但是,线程池的拒绝策略,相信知道的人会少许多. 二.四种线程池拒绝策略 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximum ...
- 关于线程池的五种实现方式,七大参数,四种拒绝策略
一.池化技术之线程池 实现线程池视频讲解,附源码:「链接」 什么是池化技术?简单来说就是优化资源的使用,我准备好了一些资源,有人要用就到我这里拿,用完了就还给我.而一个比较重要的的实现就是线程池.那么 ...
- Java多线程学习七:线程池的 4 种拒绝策略和 6 种常见的线程池
以便在必要的时候按照我们的策略来拒绝任务,那么拒绝任务的时机是什么呢?线程池会在以下两种情况下会拒绝新提交的任务. 第一种情况是当我们调用 shutdown 等方法关闭线程池后,即便此时可能线程池内部 ...
- 线程池:4个方法,7个参数,4种拒绝策略
什么是池? 先讲一个例子,有可能可以帮助你理解,觉得无趣的小伙伴可以直接跳过.相信大多数都知道外包公司,甚至很多小伙伴还在外包公司呆过,其实外包公司我觉得也就可以看作是个"池". ...
- ios页面间传递参数四种方式
ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Dele ...
- 击穿线程池面试题:3大方法,7大参数,4种拒绝策略
前言:多线程知识是Java面试中必考的点.本文详细介绍--线程池.在实际开发过程里,很多IT从业者使用率不高,也只是了解个理论知识,和背诵各种八股文,没有深入理解到脑海里,导致面试完就忘.--码农 = ...
- ThreadPoolExecutor 八种拒绝策略,对的,不是4种
转载自 ThreadPoolExecutor 八种拒绝策略,对的,不是4种 前言 谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.ut ...
- 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...
- Kubernetes_部署_k8s的四种部署策略(滚动更新、重新创建、金丝雀部署、蓝绿部署)
文章目录 一.前言 二.滚动更新 2.1 滚动更新 2.2 实践 2.2.1 新建两个springboot项目,生成两个镜像 2.2.2 kubectl apply启动 2.2.3 将版本修改为v2. ...
最新文章
- 数据蒋堂 | JOIN延伸 - 维度概念
- 跳车开发者Pokkst自述——从BTC到BCH
- maven package和install
- Qt Creator设置3D组件属性
- 实现call和apply
- 编程书单:十本Python编程语言的入门书籍
- 信息安全工程师笔记-云计算安全需求分析与安全保护工程
- plsql导出表结构_mysqldump命令详解 Part 5-按条件备份表数据
- 刷题笔记(1) 一个序列是否为二叉搜索树的遍历结果
- 《高效能程序员的修炼》——程序员的八种境界
- 怎么改变鼠标图案HTML,怎么换鼠标指针的颜色和图案?
- 软件项目管理中的需求管理要以用户为中心
- dis的前缀单词有哪些_前缀dis包含哪两种含义
- 微信小程序 小星星样式
- 软件项目开发中的百分之九十效应
- DMZ主机(路由器)
- java时钟代码_一个经典的JAVA APPLET时钟程序(一)
- Eclipse优化速度
- matlab - 3 自由度的机械臂
- 直接继承CompoundButton接收不到ACTION_UP的原因