linux Shell编程之循环语句(三)
目录
一. for 循环语句
1. for语句的结构
2. for 语句应用示例
(1) 根据姓名列表批量添加用户
(2) 根据 IP 地址列表检查主机状态
二. 使用 while 循环语句
1. while 语句的结构
2. while 语句应用示例
(1) 批量添加规律编号的用户
(2) 猜价格游戏
三. until 循环语句
1. until 语句的结构
2. until 语句应用示例
(1) 为指定用户发送在线消息
在 Shell 编程的广阔领域中,循环语句与函数无疑是两大不可或缺的基石。它们不仅能够显著提升脚本的执行效率,还能极大增强脚本的可读性和可维护性。
循环语句,作为自动化处理重复任务的利器,在 shel1 编程中扮演着至关重要的角色。for 循环、while循环以及 unti1 循环,各具特色,分别适用于不同的应用场景。
for 循环擅长处理预定义的列表,如批量创建用户账号;while 循环则更适用于需要按特定条件重复执行操作的场景;until 循环则与 while 循环相反,在条件为假时执行循环体。
一. for 循环语句
在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。
当面对各种列表重复任务时,使用简单的 if 语句已经难以满足要求,而顺序编写全部代码更是显得异常烦琐、困难重重。
1. for语句的结构
使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为 for 语句的执行条件,其中包括多个属性相同的对象,需要预先指定(如通讯录、IP 黑名单)。
for 变量名 in 取值列表
do命令序列
done
for 语句的操作对象为用户指定名称的变量,并通过 in 关键字为该变量预先设置了一个取值列表,多个取值之间以空格进行分隔。位于 do.done 之间的命令序列称为循环体,执行语句需要引用变量以完成相应的任务。
2. for 语句应用示例
(1) 根据姓名列表批量添加用户
根据人事部门给出的员工姓名的拼音列表,在Linux 服务器中添加相应的用户账号,初始密码均设置为“123456”。其中,员工姓名列表中的账号数量并不固定,而且除了要求账号名称是拼音之外,并无其他特殊规律。
可先指定员工列表文件 users.txt,然后编写一个名为 uaddfor.sh 的 Shell 脚本,从 users.txt 文件中读取各用户名称,重复执行添加用户、设置初始密码的相关操作。
列表文件
批量添加用户的脚本
若要删除 uaddfor.sh 脚本所添加的用户,只需参考上述脚本代码,将 for 循环体中添加用户的命令序列改为删除用户的操作即可。
执行查看发现它已经删除了
(2) 根据 IP 地址列表检查主机状态
根据包含公司各服务器 IP 地址的列表文件,检査其中各主机的 ping 连通性,输出各主机是否启动、关闭。其中,服务器的数量并不固定,各服务器的IP地址之间也无特殊规律。
可先指定 IP 地址列表文件 ipadds.txt,然后编写一个名为 chkhosts.sh 的Shell 脚本,从 ipadds.txt 文件中读取各服务器的 IP 地址,重复执行 ping 连通性测试,并根据测试结果输出相应的提示信息。
其中ping -c 3 -i 0.2 -w 3 分别指的是-c:发送包的数量 -i:发送包的间隔 -w:超时时间
do…done 循环体内嵌套使用了 if 条件选择语句,用来针对不同 IP 地址的测试吉果进行判断,并输出相应的提示信息。嵌套可以理解为镶嵌、套用,就是在已有的语句、函数中在多加个或多个语句、函数等。实际上,if 语句、for 语句及其他各种 Shell 脚本语句都是可以嵌套使用的
二. 使用 while 循环语句
for 循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用另外一种循环-while 语句。
1. while 语句的结构
使用 while 循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。因此,循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。
while 循环语句的语法结构
while 条件测试操作
do命令序列
done
while 语句的执行流程:首先判断 while 后的条件测试操作结果,如果条件成立,则执行 do..done循环体中的命令序列:返回 while 后再次判断条件测试结果,如果条件仍然成立,则继续执行循环体:再次返回到 while 后,判断条件测试结果…如此循环,直到 while 后的条件测试结果不再成立为止,最后跳转到 done 语句,表示结束循环
使用 while 循环语句时,有两个特殊的条件测试操作,即 true(真)和 false(假)。使用 true作为条件时,表示条件永远成立,循环体内的命令序列将无限执行下去,除非强制终止脚本(或通过 exit语句退出脚本);反之,若使用 false 作为条件,则循环体将不会被执行。这两个特殊条件也可以用在 if语句的条件测试中。
2. while 语句应用示例
(1) 批量添加规律编号的用户
在一些技术培训和学习领域,出于实验或测试的目的,需要批量添加用户账号,这些用户的名称中包含固定的前缀字串,并按照数字顺序依次进行编号,账号的数量往往也是固定的。
若要添加 20 个用户,名称依次为 stu1、stu2、…、stu20,可以参考以下操作。
使用变量 i 来控制用户名称的编号,初始赋值为 1,并且当取值大于 28 时终止循环。在循环体内部,通过语句“let i++”(等同于 i='expr $i +1`)来使变量 i 的值增加 1,因此当执行第一次循环后 i 的值将变为 2,执行第二次循环后 i 的值将变为 3,…依此类推。
若要删除 uaddwhile.sh 脚本所添加的用户,只需参考上述脚本代码,将 while 循环体中添加用户的命令序列改为删除用户的操作即可。
(2) 猜价格游戏
由脚本预先生成一个随机的价格数目(0~999)作为实际价格,判断用户猜测的价格是否高出或低于实际价格,给出相应提示后再次要求用户猜测;一直到用户猜中实际价格为止,输出用户共猜测的次数、实际价格。
主要设计思路如下:通过环境变量 RANDOM 可获得一个小于 216 的随机整数,计算其与 1000 的余数即可获得 0~999 的随机价格;反复猜测操作可以通过以 true 作为测试条件的while 循环实现,当用户猜中实际价格时终止循环;判断猜测价格与实际价格的过程采用 if 语句实现,嵌套在 while 循环体内;使用变量来记录猜测次数。
三. until 循环语句
1. until 语句的结构
until 循环与 while 循环类似,while 循环能实现的脚本 unti1 同样也可以实现,但区别是while循环在条件为真是继续执行循环,而 until 则是在条件为假时执行循环.
until 循环语句的语法结构
until 条件测试操作
do命令序列
done
until 语句的执行流程:首先判断 until 后的条件测试操作结果,如果条件不成立,则执行 do..done循环体中的命令序列;返回 until 后再次判断条件测试结果,如果条件仍然不成立,则继续执行循环体;再次返回到 until 后,判断条件测试结果!…如此循环,直到 until 后的条件测试结果成立为止,最后跳转到 done 语句,表示结束循环。
2. until 语句应用示例
在一些科学计算领域,经常会用到各种数的计算,自然数的求和操作是最简单的。本例中计算从 1 到58 的和,从1 开始相加,采用循环的方式,每次循环后加 1,将得到的值加入计算的和中,数字运算采用的是 let 方式,直到加到 50 为止
在 i 的值小于 50 之前,每次循坏 i 的值加 1,开且求出 s 的值
(1) 为指定用户发送在线消息
公司内部有一台 Linux 测试服务器,开发、测试、运维都在使用自己的账号连接登录到服务器上。当业务增加不能满足使用需求时,运维决定给服务器增加内存配置,要通知开发和测试人员保存数据退出,之后再关机升级内存,以应对业务的增加。
针对上面的需求,可编写一个名字为 until-user_online_to_write.sh 的 Shell 脚本,用于给已登录用户发送消息,对用户进行检测,必须是系统内用户并且处于登录状态,通过 Linux 的 write 命令来发送消息,具体的脚本如下所示。
测试时用户在已登录状态才能看到信息 用户那面会显示EOF
相关文章:
linux Shell编程之循环语句(三)
目录 一. for 循环语句 1. for语句的结构 2. for 语句应用示例 (1) 根据姓名列表批量添加用户 (2) 根据 IP 地址列表检查主机状态 二. 使用 while 循环语句 1. while 语句的结构 2. while 语句应用示例 (1) 批量添加规律编号的用户 (2) 猜价格游戏 三. until 循环语…...
GCC和GDB基础知识
1 GCC和G 一套开源的编译器,支持 C、C、Fortran 等语言。它负责将人类编写的源代码(如 .c 文件)翻译成计算机能执行的二进制文件(如 .exe)。 核心作用: 预处理:处理宏…...
网络复习二(TCP【3】)
一、为什么TIME_WAIT等待的时间是2MSL? MSL:报文最大生存时间 我们要知道TCP报文是基于IP协议生存的,而在IP头中有一个TTL(经过路由跳数),当TTL为0使,数据报被丢失,同时发送ICMP报…...
【5G通信】通过RRC重配实现功率调整的可能性
在5G网络中,通过解析UE Capability Information消息中的RF Parameters字段实现终端发射功率的动态调整,需要结合协议规范、射频特性及网络控制策略。以下是技术实现流程及示例: 一、RF Parameters关键字段解析 根据3GPP TS 38.331和TS 38.10…...
UE 使用事件分发器设计程序
【双字精译】虚幻引擎中的设计模式:观察者模式——Ali Elzoheiry|游戏开发游戏编程模式游戏设计模式虚幻蓝图编程事件分发器UnrealEngineUE5_哔哩哔哩_bilibili 创建一个事件分发器,这里是放在死亡事件里 比如计算场景中的敌人数量,这个UI是…...
前端面试宝典---原型链
引言----感谢大佬的讲解 大佬链接 原型链示意图 原型链问题中需要记住一句话:一切变量和函数都可以并且只能通过__proto__去找它所在原型链上的属性与方法 原型链需要注意的点 看上图可以发现 函数(构造函数)也可以通过__proto__去找到原…...
ViT 模型讲解
文章目录 一、模型的诞生背景1.1 背景1.2 ViT 的提出(2020年) 二、模型架构2.1 patch2.2 模型结构2.2.1 数据 shape 变化2.2.2 代码示例2.2.3 模型结构图 2.3 关于空间信息 三、实验3.1 主要实验3.2 消融实验 四、先验问题4.1 归纳偏置4.2 先验or大数据&…...
【技术文章的标准结构与内容指南】
技术文章的标准结构与内容指南 技术文章是传递专业知识、分享实践经验的重要媒介。一篇高质量的技术文章不仅能够帮助读者解决问题,还能促进技术交流与创新。以下是技术文章通常包含的核心内容与结构指南。 1. 标题 一个好的技术文章标题应当: 简洁明…...
Mysql概述
一、数据库相关概念 1.数据库(Data Base ,简称DB)是长期存储在计算机中有组织、可管理、可共享的数据集合。 2.数据库管理系统(Database Management System,简称为 DBMS)是管理数据库的系统软件 3.MySQL数据库全称为MySQL数据库管理系统 3.SQL语言(S…...
系统设计模块之安全架构设计(身份认证与授权(OAuth2.0、JWT、RBAC/ABAC))
一、OAuth 2.0:开放授权框架 OAuth 2.0 是一种标准化的授权协议,允许第三方应用在用户授权下访问其资源,而无需直接暴露用户密码。其核心目标是 分离身份验证与授权,提升安全性与灵活性。 1. 核心概念与流程 角色划分ÿ…...
如何管理“灰色时间”导致的成本漏洞
明确时间记录机制、优化流程透明度、应用自动化工具、强化绩效考核机制、提高员工时间意识 来有效管理。其中,明确时间记录机制 是最关键的一步。通过统一的时间记录平台,例如Toggl Track、Clockify或企业级工时系统,不仅可以实时掌握员工工作…...
程序化广告行业(84/89):4A广告代理公司与行业资质解读
程序化广告行业(84/89):4A广告代理公司与行业资质解读 大家好!在探索程序化广告行业的道路上,每一次知识的分享都是我们共同进步的阶梯。一直以来,我都希望能和大家携手前行,深入了解这个充满机…...
MTK Android12-13 -Intent Filter Verification Service 停止运行
MTK Android12-13 -Intent Filter Verification Service 停止运行 问题修复 文章目录 参考资料解决方案-修改文件源码分析源码 StatementService配置加载config_appsNotReportingCrashesActivityManagerService -retrieveSettings 加载配置AppErrors-loadAppsNotReportingCrash…...
Sentinel源码—1.使用演示和简介二
大纲 1.Sentinel流量治理框架简介 2.Sentinel源码编译及Demo演示 3.Dashboard功能介绍 4.流控规则使用演示 5.熔断规则使用演示 6.热点规则使用演示 7.授权规则使用演示 8.系统规则使用演示 9.集群流控使用演示 5.熔断规则使用演示 (1)案例说明熔断和降级 (2)Sentin…...
基于Geotools的PostGIS原始操作之CQL过滤及按属性名称生成面属性时间-以湖北省地级市行政区划为例
目录 前言 背景与意义 技术方法概述 一、CQL查询实现 1、CQL查询原理 2、Geotools中的CQL实现 二、SLD编程式样式生成 1、获取唯一的分类值 2、生成不同颜色分类 3、集成生成SLD的Style文件 三、总结 前言 随着地理信息系统(GIS)技术的快速发展…...
Linux内核中struct net_protocol的early_demux字段解析
背景问题 在内核版本4.19.0-25的头文件中,struct net_protocol结构体的定义未显式包含early_demux字段。然而,在内核版本4.19的源代码中可以看到tcp_protocol实例化时却对该字段进行了赋值: static struct net_protocol tcp_protocol = {.early_demux = tcp_v4_earl…...
TLS协议四次握手原理详解,密钥套件采用DH密钥交换算法
目录 1.TLS协议握手概述 2.TLS协议握手具体步骤 2.1.TLS第一次握手 2.2.TLS第二次握手 2.3.TLS第三次握手 2.4.TLS第四次握手 3.DH密钥交换算法 1.TLS协议握手概述 第一步客户端会发起一个消息,携带了TLS的版本号,客户端随机数,密码套…...
React 更新state中的对象
更新 state 中的对象 state 中可以保存任意类型的 JavaScript 值,包括对象。但是,你不应该直接修改存放在 React state 中的对象。相反,当你想要更新一个对象时,你需要创建一个新的对象(或者将其拷贝一份)…...
祁连山国家公园shp格式数据
地理位置:祁连山国家公园位于中国西北部,横跨甘肃省与青海省交界处,主体处于青藏高原东北边缘。总面积约5.02万平方公里,是中国首批设立的10个国家公园之一。 设立背景 试点启动:2017年,祁连山国家公园体制…...
电梯设备与电源滤波器:现代建筑中的安全守护者与电力净化师
在现代都市的钢铁森林中,电梯作为垂直交通的动脉,承载着无数人的日常出行。与此同时,在电气系统的隐秘角落,电源滤波器则默默扮演着“电力净化师”的角色,保障着各类电子设备的稳定运行。电梯设备与电源滤波器…...
Qt样式表(窗口、按钮之类,有图片和代码详细注释)
Qt样式表 1、前言2、QWdiget窗口添加背景图片2.1使用Frame解决 3、主题1(黑色背景发光边框冷色调)3.1 QWidget3.2 QPushButton3.3QLineEdit3.4 QTextEdit 4、主题二(极简冰川蓝)4.1QWidget4.2 QLineEdit4.3QTextEdit4.4QPushButto…...
在Ubuntu下进行单片机开发是否需要关闭Secure Boot
1. Secure Boot的作用 功能:Secure Boot是UEFI的安全功能,旨在阻止未经验证的驱动或操作系统启动,防止恶意软件篡改引导过程。 影响范围:它主要限制的是操作系统启动阶段加载的内核级驱动(如显卡驱动、虚拟化模块&…...
【Python爬虫】简单案例介绍4
本文继续接着我的上一篇博客【Python爬虫】简单案例介绍3-CSDN博客 目录 3.4 完整代码 3.4 完整代码 此小节给出上述案例的完整代码, # encodingutf-8 import re, json, requests, xlwt, csv import pandas as pd from lxml import etree from bs4 import Beauti…...
农民剧团的春天与改变之路
杨天义,男,1966年9月生,中共党员,江西省吉安市吉水县水南农民剧团团长。 杨天义从废品收购起家,凭借自身的努力和奋斗,自筹资金100余万元建设了水南镇的第一座影剧院,组建了江西省吉安市吉水县…...
网页防篡改与盗链防护:实时监控与自动化修复实践
摘要:针对网页内容篡改与盗链问题,本文基于群联AI云防护系统,详解如何通过哈希校验、实时监控与CDN联动实现秒级修复,并提供Python与AWS S3集成代码。 一、网页安全的核心需求 防篡改:保障页面内容完整性,…...
【密码学——基础理论与应用】李子臣编著 第五章 序列密码 课后习题
免责声明 这里都是自己搓或者手写的。 里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正! 不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维! 题目 逐题解析 5.1 我们先要知道三阶LFSR函数的表达式…...
【uni-app】页面跳转传参
一、EventChannel 的核心作用 替代全局事件总线 相比传统的 uni.$emit 和 uni.$on,EventChannel 无需手动移除监听(如 uni.$off),避免内存泄漏风险。解决 URL 传参限制 当需要传递大量数据时,URL 拼接参数可能超出长度…...
【MySQL】表的增删改查
前言 前面我们对表结构做了介绍,本期我们对表的内容操作机增删改查进行介绍! 目录 前言 一、insert 插入 1.1 单行数据 全列插入 1.2 多行数据 指定列插入 1.3 插入否则更新 1.4 插入否则替换 二、select 查询 2.1 select 列 2.1.1 全列查询…...
AQchat
在当前项目里,Handler 类主要用于处理不同类型的命令或者消息,下面按照不同功能模块为你详细介绍各 Handler 的作用。 命令处理 Handler(位于 com.howcode.aqchat.handler.impl 包) SyncRoomMembersCmdHandler:处理同…...
Profibus DP转ModbusTCP网关通讯案例解析
Profibus DP转ModbusTCP网关通讯案例解析 Profibus DP和Modbus TCP都是工业自动化领域中常见的通信协议,各自在不同的应用场景中发挥着重要作用。然而,由于不同设备、系统之间的兼容性需求,常常需要进行这两种协议的转换。本文将介绍一个典型…...
将你的 Rust + WebAssembly 项目发布到 npm
一、准备工作:登录 npm 在发布之前,你需要: 拥有一个 npm 账号 没有的话可前往 https://www.npmjs.com/signup 免费注册。 登录本地 npm 账户 使用 wasm-pack 自带的登录命令: wasm-pack login它会提示你输入 npm token…...
RGBD惯性SLAM
介绍 本篇介绍一种基于视觉光流法的RGBD惯性SLAM算法,该算法的前身是DEMO算法。 相对于原始版本: 更新了相对较老的IplImage 相关接口 加入了GTSAM后端;滑动窗口后端;3D-3Dbatch优化;点到面batch后端。分别对应不同的…...
linuxbash原理
3417 1647 0 04:17 ? 00:00:21 /usr/libexec/gnome-terminal-server yangang 3425 3417 0 04:17 pts/0 00:00:00 bash yangang 4524 3417 0 04:26 pts/1 00:00:00 bash 控制台创建是通过/usr/libexec/gnome-terminal-server 进行创建 rea…...
ctfshow做题笔记—栈溢出—pwn75~pwn79
目录 前言 一、pwn75(栈空间不够怎么办?) 二、pwn76 三、pwn77(Ez ROP or Mid ROP ?) 四、pwn79(你需要注意某些函数,这是解题的关键!) 前言 嘿嘿,隔了一段时间没有做pwn题了(主播脱单了)࿰…...
C++ 标准库中的 <algorithm> 头文件算法总结
C 常用 <algorithm> 算法概览 C 标准库中的 <algorithm> 头文件提供了大量有用的算法,主要用于操作容器(如 vector, list, array 等)。这些算法通常通过迭代器来操作容器元素。 1. 非修改序列操作 std::all_of, std::any_of, s…...
leecode Hot100之回溯算法【C++速查】
文章目录 [46. 全排列](https://leetcode.cn/problems/permutations/)[78. 子集](https://leetcode.cn/problems/subsets/)[17. 电话号码的字母组合](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/)[39. 组合总和](https://leetcode.cn/problems/combi…...
前端 main.js能做哪些事?
前端 main.js 的从入门到进阶 摘要 在前端开发中,main.js 文件是项目启动的关键入口,它承担着初始化应用、引入依赖、配置全局设置等重要职责。本文将全面介绍 main.js 的基础知识,包括其基本结构和作用,并深入探讨如何进行进阶开…...
JAVA Web_定义Servlet2_学生登录验证Servlet
题目 页面StudentLogin.html中有一HTML的表单代码如下: <form action"studentLogin" method"post">学生姓名:<input type"text" name"stuName" value""><br>登录密码:…...
【信息系统项目管理师】高分论文:论信息系统项目的范围管理(电网公司保供电可视化系统)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划范围管理2、收集需求3、定义范围4、创建工作分解结构(WBS)5、确认范围6、控制范围论文 2017年5月,我作为项目经理参加XX省电网公司保供电可视化系统应用项目的建设,该项目是2017年XX省电网信息化…...
如何高效查询订单销售情况与售罄率:从SQL到架构优化的全流程设计
在电商平台、SaaS多租户系统中,订单数据作为核心数据之一,承载了关键的运营指标,如销售额、商品售罄率、订单转化等。随着数据量的持续增长,如何在大数据量条件下快速、稳定地获取统计信息,成为系统设计的重点之一。 本文将从查询目标分析入手,结合数据库设计优化与典型…...
RTT添加一个RTC时钟驱动,以DS1307为例
添加一个外部时钟芯片 这里多了一个选项 复制drv_rtc.c,重命名为drv_rtc_ds1307.c 添加到工程中 /*** @file drv_rtc_ds1307.c* @brief * @author jiache (wanghuan3037@fiberhome.com)* @version 1.0* @date 2025-01-08* * @copyright Copyright (c) 2025 58* */ #...
Leetcode 独一无二的出现次数
可以通过哈希集来判断是否独一无二,如果set中已经包含了count,那么set.add(count)会返回false class Solution {public boolean uniqueOccurrences(int[] arr) {Map<Integer, Integer> map new HashMap<>();for(int i 0; i < arr.leng…...
ubuntu上,e1000e,i1210有线网卡驱动安装
1,下载附属资源,解压对应的压缩包 tar zxf e1000e-<x.x.x>.tar.gz 2,进入压缩包src目录下 cd e1000e-<x.x.x>/src/ 3,安装 sudo make install 4,重启 reboot e1000e Intel官网下载地址 https://www.i…...
Xmind 2025 中文思维导图
Xmind 2025 中文思维导图 一、介绍 Xmind ,是一款出色的思维导图和头脑风暴软件,拥有美观的智能配色方案,便于你轻松理清思路捕捉创意。丰富的导图模板及多种创意整合工具,可助力导图迸发更多活力。还拥有强大演说模式ÿ…...
搭载DeepSeek|暴雨AI教育一体机加速AI教育普及
近日,在全国智算大会上,暴雨公司展示了新一代 AI 教育一体机,通过全栈国产化技术与 DeepSeek 模型的深度适配,打造低成本、高性能的人工智能教育解决方案,助力 AI 教育普及与教育数字化转型。 暴雨AI教育一体机&#…...
【字节跳动AI论文】Seaweed-7B:视频生成基础模型的高成本效益培训
摘要:本技术报告介绍了一种经济有效的视频生成基础模型训练策略。 我们提出了一种中等规模的研究模型,大约有70亿个参数(7B),称为Seaweed-7B,使用665,000个H100 GPU小时从头开始训练。 尽管使用适度的计算资…...
java 线程池:IO密集型的任务(CPU核数 * 2 + 1),为什么这么设置,计算密集型任务( CPU核数+1 ),为什么这么设置
文章目录 1. IO密集型任务:`CPU核数 2 + 1`为什么这样设置?示例场景:2. CPU密集型任务:`CPU核数 + 1`为什么这样设置?示例场景:3. 两者的核心差异4. 实际应用中的注意事项5. 总结在Java线程池的配置中, IO密集型和 CPU密集型任务的线程数设置逻辑存在显著差异,核心原…...
RabbitMQ消息的可靠性
生产者的可靠 首先,我们一起分析一下消息丢失的可能性有哪些。 消息从发送者发送消息,到消费者处理消息,需要经过的流程是这样的: 消息从生产者到消费者的每一步都可能导致消息丢失: ● 发送消息时丢失:…...
涵盖通算、智算、超算、量算!“四算合一”算力网络投入使用,效率提升20%
近日,由中国移动承建的全国首个“四算合一”算力网络调度平台日前正式投入使用。这座“数字三峡”的诞生,标志着我国算力基建完成从“单兵作战”到“军团协同”的跃迁。 什么是“四算合一”? “四算合一”是指将通用算力、智能算力、超级算…...
【Redis】数据结构和内部编码
先来复习一下之前学过的几个基本的全局命令: keys:用来查看匹配规则的keyexists:用来判定执行key是否存在del:删除指定的keyexpire:给key设置过期时间ttl:查询key的过期时间type:查询key对应的…...