当前位置: 首页 > news >正文

ThreadPoolExecutor中的addWorker方法

在看线程池源码的时候看到了这么一段代码

private boolean addWorker(Runnable firstTask, boolean core) {retry:for (int c = ctl.get();;) {// Check if queue empty only if necessary.if (xxx)return false;for (;;) {if (xxx)return false;if (xxx)break retry;if (xxx)continue retry;}}    

第一眼看到 retry:break retry;continue retry; 这三段代码,我是一脸懵逼的,我去,这是个什么鬼玩意?!咋见都没见过?

后来百度了下这玩意叫“标签(label)”,顾名思义,就是一个标记,和跳到指定地方的一种用法,类似于插眼-传送的关系,插过眼之后,如果需要就能直接传送到插眼的地方,这么说是不是好理解了,哈哈哈哈

实际上java中 break的语法是

break [label];  \\ 结束循环,并跳到指定的标签处

continue也是同理

continue [label]; \\ 跳出当前循环,并跳到指定的标签处

那也就是说开头第一行的 retry: 其实就是定义一个标签


好了,知道了语法结构,那就可以大致的理解源码的写法含义了:
break retry; 用于结束整个双层的循环,如果没有了标签,则只会结束内层的循环,外层的循环还是会继续执行的!

continue retry; 用于跳过双层循环当前的循环,注意两层的循环一起结束,如果不加 标签的话,是只会跳过内层的当前循环,并不会跳过外层的当前循环的!

知道了这玩意的具体的涵义之后,只能说大师就是大师,我只能卧槽、666了…

相关文章:

ThreadPoolExecutor中的addWorker方法

在看线程池源码的时候看到了这么一段代码 private boolean addWorker(Runnable firstTask, boolean core) {retry:for (int c ctl.get();;) {// Check if queue empty only if necessary.if (xxx)return false;for (;;) {if (xxx)return false;if (xxx)break retry;if (xxx)c…...

9 有线网络的封装

概述 IPC设备一般都带有网口,支持以有线网络方式接入NVR和其他平台。有线网络的使用比较简单,主要操作有:设置IP地址、子网掩码、网关、DHCP等。在封装有线网络前,我们需要先封装DHCP客户端管理类,用于管理各种网络的DHCP功能。 DHCP客户端管理类 DHCP客户端管理类的头文件…...

Linux----网络基础(2)--应用层的序列化与反序列化--守护进程--0226

文章中有使用封装好的头文件,可以在下面连接处查询。 Linux相关博文中使用的头文件_Gosolo!的博客-CSDN博客 1. 应用层 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层 1.2 协议 我们在之前的套接字编程中使用的是…...

uipath实现滑动验证码登录

现实需求 在进行RPA流程设计过程中,遇到登录系统需要滑动验证的情况,如图所示: 此时需要在RPA流程设计中,借助现有的活动完成模拟人工操作,完成验证登录操作。 设计思路 这个功能流程的设计思路大体如下: …...

openai-chatGPT的API调用异常处理

因为目前openai对地区限制的原因,即使设置了全局代理使用API调用时,还是会出现科学上网代理的错误问题。openai库 0.26.5【错误提示】:raise error.APIConnectionError(openai.error.APIConnectionError: Error communicating with OpenAI: …...

css实现音乐播放器页面 · 笔记

效果 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …...

buu [NPUCTF2020]这是什么觅 1

题目描述&#xff1a; 就一个这种文件&#xff0c;用记事本打开后&#xff1a; 题目分析&#xff1a; 打开后就一串看不懂的东西&#xff0c;想想这个东西曾经在 010editor 或 winhex中出现过&#xff08;右端&#xff09;既然如此那么我们就用它打开&#xff0c;得到&#…...

Restful API 设计规范

1. 简介 目前 "互联网软件"从用客户端/服务端模式&#xff0c;建立在分布式体系上&#xff0c;通过互联网通讯&#xff0c;具有高延时、高开发等特点。但是软件开发和网络是两个不同的领域&#xff0c;交集很少。要使得两个融合&#xff0c;就要考虑如何在互联网环境…...

sigwaittest测试超标的调试过程

1&#xff0c;问题描述硬件环境&#xff1a;飞腾S2500&#xff08;64核&#xff09;OS&#xff1a;kylinOS, linux preempt rt&#xff0c; 4.19.90测试命令&#xff1a;sigwaittest -p 90 -i 1000 -a 1测试结果&#xff1a;信号混洗值最大超过了80us&#xff0c;与飞腾其他CPU…...

Python进阶-----面对对象4.0(面对对象三大特征之--继承)

目录 前言&#xff1a; Python的继承简介 1.什么是继承 2.继承的好处 3.object类 继承的相关用法 1.继承的定义与法则 2.对继承的重写 3.&#xff08;单继承&#xff09;多层继承 4.多继承 5.多继承重写时调用父类方法 前言&#xff1a; 在讲之前&#xff0c;我想说说中…...

九龙证券|利好政策密集发布,机构扎堆看好的高增长公司曝光

新能源轿车销量和保有量快速增长&#xff0c;带来了充电桩商场的微弱需求。 日前&#xff0c;商务部部长王文涛表明&#xff0c;本年将在落实好方针的一起&#xff0c;活跃出台新方针办法&#xff0c;比方辅导当地展开新能源轿车下乡活动&#xff0c;优化充电等使用环境&#x…...

stm32CubeIDE FMC 驱动LCD(8080)

一&#xff0c;TFT屏硬件接口16位&#xff0c;80并口。二&#xff0c;FMC介绍。FSMC&#xff08;Flexible Static Memory Controller&#xff09;&#xff0c;译为灵活的静态存储控制器。STM32F1 系列芯片使用 FSMC 外设来管理扩展的存储器&#xff0c;它可以用于驱动包括 SRAM…...

Java 数据类型

数据类型用于对数据归类&#xff0c;以便开发者理解和操作。 基本数据类型 Java 确定了每种基本数据类型所占存储空间的大小&#xff0c;不会像其它语言那样随机器硬件架构的变化而变化&#xff0c;这使 Java 程序更具可移植性。 Java 中定义了如下的基本数据类型。 byte …...

Prometheus 监控云Mysql和自建Mysql(多实例)

本文您将了解到 Prometheus如何配置才能监控云Mysql(包括阿里云、腾讯云、华为云)和自建Mysql。 Prometheus 提供了很多种Exporter&#xff0c;用于监控第三方系统指标&#xff0c;如果没有提供也可以根据Exporter规范自定义Exporter。 本文将通过MySQL server exporter 来监控…...

Vue3中的h函数

文章目录简介简单使用参数使用计数器进阶使用函数组件插槽专栏目录请点击 简介 众所周知&#xff0c;vue内部构建的其实是虚拟DOM&#xff0c;而虚拟DOM是由虚拟节点生成的&#xff0c;实质上虚拟节点也就是一个js对象事实上&#xff0c;我们在vue中写的template,最终也是经过…...

阿尔法开发板 IMX6ULL 说明

一. IMX6ULL开发板 IMX6ULL开发板即正点原子的阿尔法(ALPHA)开发板&#xff0c;采用恩智浦芯片&#xff0c;cortex-A7架构的。 二. IM6ULL开发板说明 1. IO说明 对于IMX6ULL芯片&#xff0c;一个IO对应两个寄存器&#xff0c;第一个寄存器负责配置其复用功能&#xff0c;…...

Altium Designer19 #学习笔记# | 基础应用技巧汇总

全文目录一.元件符号库二.元件封装库1.AD09 集成元件库/封装库三.电路原理图1. 巧用查找"相似对象功能"1.1 查找相同元件1.2. 查找相同文本1.3. 查找相同网络 &#xff1a;E - S - C四.PCB原理图【AD PCB模式下的常用快捷键】PCB视图放大/缩小PCB视图左/右移动PCB切换…...

Python 元类编程实现一个简单的 ORM

概述 什么是ORM?    ORM全称“Object Relational Mapping”&#xff0c;即对象-关系映射&#xff0c;就是把关系数据库的一行映射为一个对象&#xff0c;也就是一个类对应一个表&#xff0c;这样&#xff0c;写代码更简单&#xff0c;不用直接操作SQL语句。 现在我们就要实…...

《C++ Primer Plus》第18章:探讨 C++ 新标准(7)

C11 新增的其他功能 C11 增加了很多功能&#xff0c;本书无法全面介绍&#xff1b;另外&#xff0c;本书编写期间&#xff0c;其中很多功能还未得到广泛实现。然而&#xff0c;有些功能有必要简要地介绍一下。 并行编程 当前&#xff0c;为提高计算机性能&#xff0c;增加处…...

Redis学习(二):Redis安装测试

概述 Redis是什么 Redis, Remote Dictionary Server, 即远程字典服务。免费开源的数据库。 由C语言编写&#xff0c;支持网络&#xff0c;可基于内存亦可持久化的日志型、KV数据库&#xff0c;并提供所种语言的API。 Redis能干嘛 用于内存存储&#xff0c;持久化。rdb、ao…...

STM32duino ILPS22QS气压传感器驱动深度解析

1. 项目概述STM32duino ILPS22QS 是一个面向 STM32 平台的 Arduino 兼容库&#xff0c;专为意法半导体&#xff08;STMicroelectronics&#xff09;推出的超低功耗数字气压传感器 ILPS22QS 设计。该库并非通用传感器抽象层&#xff0c;而是深度适配 STM32 硬件生态的底层驱动实…...

Cesium交互绘图避坑指南:从CallbackProperty到CustomDataSource的完整流程

Cesium交互绘图避坑指南&#xff1a;从CallbackProperty到CustomDataSource的完整流程 在三维地理信息可视化领域&#xff0c;Cesium凭借其强大的渲染能力和丰富的API接口&#xff0c;已成为开发者构建交互式地图应用的首选工具。然而&#xff0c;当涉及动态绘图功能时&#xf…...

VSCode调试ARM芯片:一份给硬件工程师的OpenOCD与J-Link配置清单

VSCode调试ARM芯片&#xff1a;一份给硬件工程师的OpenOCD与J-Link配置清单 当硬件工程师第一次将ARM Cortex-M开发板连接到电脑时&#xff0c;最令人沮丧的莫过于看着闪烁的LED却无法窥探芯片内部的运行状态。调试器就像硬件工程师的"听诊器"&#xff0c;而VSCode配…...

终极Ponzu数据迁移指南:快速掌握内容导入导出和批量操作技巧

终极Ponzu数据迁移指南&#xff1a;快速掌握内容导入导出和批量操作技巧 【免费下载链接】ponzu Headless CMS with automatic JSON API. Featuring auto-HTTPS from Lets Encrypt, HTTP/2 Server Push, and flexible server framework written in Go. 项目地址: https://git…...

重构窗口管理逻辑的效率革命:Loop重新定义macOS多任务体验

重构窗口管理逻辑的效率革命&#xff1a;Loop重新定义macOS多任务体验 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 当你在三个浏览器窗口、两个文档和一个设计工具间频繁切换时&#xff0c;当你花费十分钟拖拽调整窗口…...

OpenClaw+GLM-4.7-Flash:个人博客自动更新系统搭建

OpenClawGLM-4.7-Flash&#xff1a;个人博客自动更新系统搭建 1. 为什么需要自动化博客维护 作为一个技术博主&#xff0c;我每周至少要花3-4小时在博客维护上&#xff1a;构思主题、撰写内容、调整格式、发布更新。最痛苦的不是写作本身&#xff0c;而是那些重复性的机械工作…...

终极罗技鼠标压枪宏指南:3分钟快速上手,告别武器后坐力困扰!

终极罗技鼠标压枪宏指南&#xff1a;3分钟快速上手&#xff0c;告别武器后坐力困扰&#xff01; 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg …...

数据架构现代化:AI应用落地的关键突破口

数据架构现代化&#xff1a;AI应用落地的关键突破口 一、引言&#xff1a;为什么你的AI项目总卡在“数据关”&#xff1f; 1. 一个扎心的真实场景 去年&#xff0c;我遇到一位零售企业的技术负责人&#xff0c;他的困惑让我印象深刻&#xff1a;“我们花了12个月、近500万预算&…...

QMK Toolbox终极指南:轻松掌握机械键盘固件部署与定制

QMK Toolbox终极指南&#xff1a;轻松掌握机械键盘固件部署与定制 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是一款功能强大的开源键盘固件部署工具&#xff0c;专为QMK…...

5款强力资源获取工具深度评测:猫抓媒体解析技术如何重塑内容管理流程

5款强力资源获取工具深度评测&#xff1a;猫抓媒体解析技术如何重塑内容管理流程 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代&#xff0c;高效获取和管理网络媒体资源已成为…...