大多数人不知道的:线程池CallerRunsPolicy()拒绝策略

总所周知,java里面线程池的四个拒绝策略

         AbortPolicy       丢弃并抛出RejectedExecutionException异常

        DiscardPolicy         直接丢弃

        DiscardOldestPolicy 直接丢弃最前面的任务,尝试执行新任务

        CallerRunsPolicy      由调用线程池的线程处理任务,可以是主线程,也可能是其他创建线程池的线程。

其中最难理解的是CallerRunsPolicy。网上资料杂乱,难以理解还误导人。

其实在大佬写的书《Java并发编程的艺术》里面说过是只用调用者所在线程来运行任务。

说到这里一般认为就是交给主线程处理任务,其实不是,因为在线程里面也可以创建线程池,具体看下面的代码实例。所以处理任务的不一定是主线程,有可能还是子线程。到这里就明白了CallerRunsPolicy策略是将任务交给调用线程池的线程。

public class HanderPolicy {public static void main(String[] args) {//创建线程池,并获得线程池管理对象ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 60,TimeUnit.SECONDS, new ArrayBlockingQueue<>(2), new ThreadPoolExecutor.CallerRunsPolicy());//使用Runnable的lambda表达式实现任务提交threadPoolExecutor.submit(()-> {System.out.println(Thread.currentThread().getName()+"执行了");//线程内部的线程池ThreadPoolExecutor threadPoolExecutor1 = new ThreadPoolExecutor(2, 2, 60,TimeUnit.SECONDS, new ArrayBlockingQueue<>(2), new ThreadPoolExecutor.DiscardOldestPolicy());for (int i=1;i<=20;i++) {int j=i;threadPoolExecutor1.submit((()->{。。。。。。。。。

读到这里,希望对大家有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/442351.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ascend C 自定义算子开发:高效的算子实现

Ascend C 自定义算子开发&#xff1a;高效的算子实现 在 Ascend C 平台上&#xff0c;开发自定义算子能够充分发挥硬件的性能优势&#xff0c;帮助开发者针对不同的应用场景进行优化。本文将以 AddCustom 算子为例&#xff0c;介绍 Ascend C 中自定义算子的开发流程及关键技术…

乌班图基础设施安装之Mysql8.0+Redis6.X安装

简介&#xff1a;云服务器基础设施安装之 Mysql8.0Redis6.X 安装 Docker安装 # 按照依赖 yum install -y yum-utils device-mapper-persistent data lvm2 Docker Mirror 从去年开始. hub.docker.com[1] 在国内的访问速度极慢. 当时大家主要还是依赖国内的一些镜像源: 如中科…

CSS圆角

在制作网页的过程中&#xff0c;有时我们可能需要实现圆角的效果&#xff0c;以前的做法是通过切图&#xff08;将设计稿切成便于制作成页面的图片&#xff09;&#xff0c;使用多个背景图像来实现圆角。在 CSS3 出现之后就不需要这么麻烦了&#xff0c;CSS3 中提供了一系列属性…

Python 卸载所有的包

Python 卸载所有的包 引言正文 引言 可能很少有小伙伴会遇到这个问题&#xff0c;当我们错误安装了一些包后&#xff0c;由于包之间有相互关联&#xff0c;导致一些已经安装的包无法使用&#xff0c;而由于我们已经安装了很多包&#xff0c;它们的名字我们并不完全知道&#x…

婚宴桌号查询指南

婚宴时如何查询桌号&#xff1f; 在婚宴这样的大型活动中&#xff0c;确保每位宾客都能迅速找到自己的座位是一项重要的任务。为了让宾客们能够轻松地找到自己的桌号&#xff0c;享受宴会的每一刻&#xff0c;我们特别准备了一份详细的婚宴桌号查询教程。本教程将指导您如何通过…

SQl注入文件上传及sqli-labs第七关less-7

Sql注入文件上传 1、sql知识基础 secure_file_priv 参数 secure_file_priv 为 NULL 时&#xff0c;表示限制mysqld不允许导入或导出。 secure_file_priv 为 /tmp 时&#xff0c;表示限制mysqld只能在/tmp目录中执行导入导出&#xff0c;其他目录不能导出导入。 secure_fil…

深度学习:CycleGAN图像风格迁移转换

目录 基础概念 模型工作流程 循环一致性 几个基本概念 假图像&#xff08;Fake Image&#xff09; 重建图像&#xff08;Reconstructed Image&#xff09; 身份映射图像&#xff08;Identity Mapping Image&#xff09; CyclyGAN损失函数 对抗损失 身份鉴别损失 Cyc…

《Python 安装指南:开启编程之旅》

《Python 安装指南&#xff1a;开启编程之旅》 在当今数字化的时代&#xff0c;编程已经成为一项越来越重要的技能。而 Python 作为一种简洁、高效且功能强大的编程语言&#xff0c;受到了众多开发者的青睐。无论是数据科学、人工智能、Web 开发还是自动化脚本编写&#xff0c…

绕过中间商,不用 input 标签也能搞定文件选择

&#x1f4b0; 点进来就是赚到知识点&#xff01;本文带你用 JS 实现文件选择功能&#xff0c;点赞、收藏、评论更能促进消化吸收&#xff01; &#x1f680; 想解锁更多 Web 文件系统技能吗&#xff1f;快来订阅专栏「Web 玩转文件操作」! &#x1f4e3; 我是 Jax&#xff0c;…

Axure中文版:原型设计新手必备工具,轻松上手!

原型设计是每位产品经理必备的核心技能。通过原型设计&#xff0c;可以提前测试产品与用户之间的交互&#xff0c;发现潜在问题&#xff0c;提升设计效率&#xff0c;节省开发成本。对于移动应用来说&#xff0c;原型相当于产品的说明书&#xff0c;有助于设计师和工程师之间进…

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞&#xff0c;由于某些接口没有鉴权&#xff0c…

计算机网络:物理层 —— 信道复用技术

文章目录 信道信道复用技术信道复用技术的作用基本原理常用的信道复用技术频分复用 FDM时分复用 TDM波分复用 WDM码分复用 CDM码片向量基本原理 信道 信道是指信息传输的通道或介质。在通信中&#xff0c;信道扮演着传输信息的媒介的角色&#xff0c;将发送方发送的信号传递给…

LSTM变种模型

一、GRU 1.概念 GRU&#xff08;门控循环单元&#xff0c;Gated Recurrent Unit&#xff09;是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;旨在解决标准 RNN 在处理长期依赖关系时遇到的梯度消失问题。GRU 通过引入门控机制简化了 LSTM&#xff08;长短期…

APP测试中ios和androis的区别,有哪些注意点

一、运行机制不同 IOS采用的是沙盒运行机制&#xff0c;安卓采用的是虚拟机运行机制。 1、沙盒机制&#xff1a; 概念&#xff1a;沙盒是一种安全机制&#xff0c;用于防止不同应用之间互相访问 作用&#xff1a;就是存储数据&#xff0c;每个沙盒就相当于每个每个应用的系…

1688商品详情关键词数据-API

要利用 Python 爬虫采集 1688 商品详情数据&#xff0c;需要先了解 1688 网站的页面结构和数据请求方式。一般使用 requests 库请求网站的数据&#xff0c;使用 BeautifulSoup 库解析网页中的数据。 以下是一个简单的 Python 爬虫采集 1688 商品详情数据的示例代码&#xff1a…

红队老子养成记2 - 不想渗透pc?我们来远控安卓!(全网最详细)

大家好&#xff0c;我是Dest1ny。 今天我们是红队专题中的远控安卓。 这个实验会非常有趣&#xff0c;大家多多点赞&#xff01; 环境&#xff1a; 一台有公网ip的vps / kali / 带msf工具即可 一台安卓手机&#xff08;最好老一点&#xff0c;因为我们这里不涉及免杀&#…

typora笔记导出word格式:

Pandoc&#xff1a;各系统下载github链接 https://github.com/jgm/pandoc/releases/latest windows安装包 链接&#xff1a;https://pan.baidu.com/s/17AZNIMImbzFtWJAcAfAB0g?pwd55l2 提取码&#xff1a;55l2 先解压压缩包 点击 设置Pandoc路径&#xff0c;然后选择pa…

如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程

Linux系统Docker搭建Poste.io电子邮件服务器&#xff0c;搭建属于自己的域名邮箱服务器&#xff0c;可以无限收发电子邮件&#xff08;Email&#xff09;&#xff01; 视频教程&#xff1a;https://www.bilibili.com/video/BV11p1mYaEpM/ 前言 什么是域名邮箱&#xff1f; …

vscode中安装python的包

首先需要调出命令行。然后运行代码&#xff0c;找到你所需要的环境。 PS C:\Users\Administrator\AppData\Local\ESRI\conda\envs\arcgispro-env> conda env list # conda environments: #C:\ProgramData\Anaconda3 base * C:\Users\Administrator\.con…

[C++ 核心编程]笔记 2 栈区和堆区

栈区: 由编译器自动分配释放&#xff0c;存放函数的参数值,同部变量等 注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std;//栈区数据注意事项 不要…