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

消息队列(IPC技术)

目录

一、Linux 中主要的进程间通信方式如下:

二、消息队列函数

(1)msgget函数

功能概述

函数原型

参数解释

返回值

示例

结果

问题

(2) msgsnd函数

功能概述

函数原型

参数说明

返回值

示例

结果

(3)msgrcy函数 

功能概述

函数原型

参数说明

返回值

示例

结果 (与上方的消息队列发送结合)


本篇文章开始前我们先来了解一些基本技术

一、Linux 中主要的进程间通信方式如下:

        管道:包括无名管道和命名管道。无名管道用于具有亲缘关系的进程间单向通信;命名管道可用于不相关进程间的双向通信,通过路径名访问。

        信号:异步通知机制,用于通知进程特定事件发生,进程可自定义信号处理函数或忽略信号。

        共享内存:允许多个进程共享同一块物理内存区域,实现高效的数据交换,需结合信号量等同步机制保证数据一致性。

        消息队列:进程可向队列发送和接收具有特定格式和类型的消息,实现异步、可靠的通信,不同进程可松耦合通信。

        信号量:用于进程间的同步和互斥,通过计数器表示资源可用数量,控制进程对共享资源的访问。

        套接字(socket):网络通信机制,也可用于本地进程间通信,本地通信使用 UNIX 域套接字,提供可靠的双向通信,适用于不同主机或同一主机上不同进程间通信。

注:消息队列、共享内存、信号量数组:生命周期和进程无关,归操作系统直接管理。

二、消息队列函数

(1)msgget函数

功能概述

   msgget 函数的主要功能是创建一个新的消息队列或者获取一个已经存在的消息队列的标识符。消息队列允许不同的进程通过发送和接收消息来进行通信,是一种强大且灵活的进程间通信方式。

函数原型
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>int msgget(key_t key, int msgflg);
参数解释

   key:这是一个用于标识消息队列的id。key 可以是由 ftok 函数生成的键,也可以是特殊值 IPC_PRIVATE

    IPC_PRIVATE:用于创建一个新的、私有的消息队列。这个队列只能由创建它的进程及其子进程访问。

           通过 ftok 生成的键:可以用于多个进程之间共享同一个消息队列。不同的进程使用相同的路径名和项目 ID 调用 ftok 函数,就可以得到相同的 key 值,从而访问同一个消息队列。

    msgflg:这是一个标志位,用于指定消息队列的创建和访问权限。它可以是以下标志的组合。                 

     IPC_CREAT:如果指定的消息队列不存在,则创建一个新的消息队列。

     IPC_EXCL:与 IPC_CREAT 一起使用时,如果消息队列已经存在,则 msgget 调用会失败并返回 -1。权限标志:例如 0666,用于指定消息队列的访问权限,类似于文件的权限设置。

返回值

        成功时,msgget 返回一个非负整数,这个整数就是消息队列的标识符(msgid),后续的 msgsndmsgrcv 等函数将使用这个标识符来操作消息队列。

        失败时,返回 -1,并设置 errno 来指示错误类型。

示例
#include <iostream>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>using namespace std;int main()
{// 如果key不存在就创建新的,如果存在就访问这个已经存在的消息队列int msgid = msgget((key_t)1001, IPC_CREAT | 0777);if (msgid == -1){perror("msgget error");}return 0;
}
结果

问题

        但我们这个有一个问题就是创建了之后就算程序运行结束它也无法消亡我们该怎么办呢。我们使用命令行来查看有哪些方法:

ipcrm -h

第一种办法,使用命令行

ipcrm -Q keyid

第二种办法,直接删除全部

(2) msgsnd函数

功能概述

        msgsnd 是一个在 Unix 和类 Unix 系统中用于消息队列操作的系统调用函数,其主要功能是把消息添加到指定的消息队列里。

函数原型
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
参数说明

   msqid:消息队列的标识符,由 msgget 函数返回。

   msgp:指向消息缓冲区的指针,此缓冲区包含要发送的消息。消息缓冲区的结构通常如下:

struct msgbuf {long mtype;       /* 消息类型,必须大于 0 */char mtext[1];    /* 消息数据 */
};

         msgsz:消息数据部分(mtext)的字节数,但不是结构体长度就是不包含消息类型 mtype

   msgflg:控制函数行为的标志。常见的标志有:

     IPC_NOWAIT:若消息队列已满,函数会立即返回 -1 ,并将 errno 设置为 EAGAIN

       0:若消息队列已满,函数会阻塞,直到有空间可用。

返回值

        若成功,返回 0

        若失败,返回 -1,并设置 errno 来指示错误类型。

示例
#include <iostream>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>using namespace std;typedef struct messagebuf
{long mtype;char mtext[50];
}MSGBUF;int main()
{// 如果key不存在就创建新的,如果存在就访问这个已经存在的消息队列int msgid = msgget((key_t)1001, IPC_CREAT | 0777);if (msgid == -1){perror("msgget error");}else{cout << "msgget success" << endl;MSGBUF buf;buf.mtype = 1;sprintf(buf.mtext, "%s", "hello IPC");if (msgsnd(msgid, &buf, sizeof(buf.mtext), 0) < 0){perror("msgsnd error");}else{cout << "msgsnd success" << endl;}}return 0;
}
结果

(3)msgrcy函数 

注:这是一个阻塞式函数,如果消息队列中没有数据就会阻塞,直到我又发送一个数据到消息队列中才会继续。

功能概述

        它是 Unix 和类 Unix 系统中用于消息队列操作的系统调用,主要功能是从指定的消息队列中接收消息。

函数原型
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
参数说明

        msqid:消息队列的标识符,由 msgget 函数返回。

        msgp:指向消息缓冲区的指针,此缓冲区包含要发送的消息。(与上同)

        msgsz:指定要接收的消息数据部分(mtext)的最大字节数,不包含消息类型 mtype

        msgtyp:指定要接收的消息类型:

      msgtyp == 0:接收消息队列中的第一条消息。

      msgtyp > 0:接收消息类型为 msgtyp 的第一条消息。

      msgtyp < 0:接收消息类型小于或等于 msgtyp 绝对值的最小类型的第一条消息。

        msgflg:控制函数行为的标志,常见的标志有:

      IPC_NOWAIT:如果没有符合条件的消息,函数会立即返回 -1,并将 errno 设置为 ENOMSG

      MSG_EXCEPT(仅在 msgtyp > 0 时有效):接收类型不等于 msgtyp 的第一条消息。

      MSG_NOERROR:如果消息长度超过 msgsz,则截断消息而不产生错误。

返回值

        若成功,返回接收到的消息数据部分(mtext)的字节数。

        若失败,返回 -1,并设置 errno 来指示错误类型。

示例
#include <iostream>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>using namespace std;typedef struct messagebuf
{long mtype;char mtext[50];
}MSGBUF;int main()
{// 如果key不存在就创建新的,如果存在就访问这个已经存在的消息队列int msgid = msgget((key_t)1001, IPC_CREAT | 0777);if (msgid == -1){perror("msgget error");}else{cout << "msgid=" << msgid << endl;MSGBUF buf;if (msgrcv(msgid, &buf, sizeof(buf.mtext), 1, 0) < 0){perror("msgrcv error");}else{cout << "从消息队列中接收数据成功,数据为:" << buf.mtext << endl;}}return 0;
}
结果 (与上方的消息队列发送结合)

数据取走之后,字节数又变成0 

 

相关文章:

消息队列(IPC技术)

目录 一、Linux 中主要的进程间通信方式如下&#xff1a; 二、消息队列函数 &#xff08;1&#xff09;msgget函数 功能概述 函数原型 参数解释 返回值 示例 结果 问题 (2) msgsnd函数 功能概述 函数原型 参数说明 返回值 示例 结果 &#xff08;3&#xff0…...

分支语句和循环语句

什么是语句&#xff1f; C语言中由一个分号;隔开的就是一条语句。 比如&#xff1a; printf("haha");12;分支语句 if语句 if语句的语法结构: if(表达式)语句;if(表达式)语句1; else语句2;//多分支 if(表达式1)语句1; else if(表达式2)语句2; else语句3;在C语言…...

MySQL基础 [八] - 事务

目录 前言 什么是事务 事务的版本支持 事务的提交方式 事务的相关演示 并行事务引发的问题 脏读 dirty read 不可重复读 non-repeatable read 幻读 phantom read 事务的隔离级别 查看与设置隔离级别 读未提交&#xff08;Read Uncommitted&#xff09; 读提交&…...

深入理解Java反射

反射(Reflection)是Java语言的一个强大特性&#xff0c;它允许程序在运行时动态地获取类的信息并操作类或对象的属性、方法和构造器。就是在获取运行时的java字节码文件&#xff0c;通过各种方法去创建对象&#xff0c;反射是Java被视为动态语言的关键特性之一。 反射其实就是…...

【UE】渐变框材质

效果 步骤 新建一个材质&#xff0c;这里命名为“M_GlowingBorder”&#xff0c;打开“M_GlowingBorder”后&#xff0c;设置材质域为“用户界面”&#xff0c;混合模式为“半透明” 添加如下节点&#xff1a; 代码&#xff1a; Begin Object Class/Script/UnrealEd.Materia…...

2025年第十八届“认证杯”数学中国数学建模网络挑战赛【ABCD题】思路分析

首先&#xff0c;需要理解用户的需求。问题1需要数学模型来确定小行星的相对距离&#xff0c;而问题2需要预测短期轨道并计算特定时间的观测角度。这两个问题都需要结合天文学和数学建模的知识&#xff0c;涉及到轨道力学和几何定位的方法。 接下来&#xff0c;查阅提供的搜索…...

JavaScript 性能优化:突破瓶颈的实战指南

一、引言​ 在现代 Web 应用和 Node.js 服务端开发中&#xff0c;JavaScript 已成为核心编程语言。随着应用复杂度提升&#xff0c;性能问题愈发凸显。高延迟、卡顿甚至崩溃等现象&#xff0c;不仅影响用户体验&#xff0c;还可能导致业务流失。深入理解 JavaScript 性能瓶颈并…...

HarmonyOS:组件布局保存至相册

一&#xff0c;需求背景 有这样一个需求&#xff0c;将页面上的某个自定义组件以图片的形式保存至相册。 二&#xff0c;需求拆解 根据需求分析&#xff0c;可将需求拆解成两步&#xff1a; 1&#xff0c;将组件转换成图片资源&#xff1b; 2&#xff0c;将图片保存到相册…...

【langchain库名解析】

目录 一、from langchain_openai import ChatOpenAI 1. 核心功能 2. 典型使用场景 场景 1&#xff1a;直接生成对话回复 场景 3&#xff1a;流式输出&#xff08;逐词显示结果&#xff09; 3. 与其他 LangChain 组件的协同 结合提示模板&#xff08;PromptTemplate&#…...

629SJBH图书管理系统设计与实现

一、 绪论 &#xff08;一&#xff09;课题的提出、现状及研究意义 图书馆是文献情报中心&#xff0c;是为教学和科研服务的学术性机构。它履行搜集、加工、存贮和传播知识信息的职能&#xff0c;与各系资料室互为补充&#xff0c;共同承担为教学和科研提供文献情报资料保障的…...

2025 年“认证杯”数学中国数学建模网络挑战赛 A题 小行星轨迹预测

近地小行星&#xff08; Near Earth Asteroids, NEAs &#xff09;是轨道相对接近地球的小行 星&#xff0c;它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位&#xff08; AU &#xff09;的小行星。 其中轨道与地球轨道最近距离小于 0.05A 且直径大于 140 米的小行星被…...

PhotoShop学习09

1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径&#xff0c;只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里&#xff0c;它的快捷键为P。 在使用前&#xff0c;可以把填充和描边选为空颜色&#xff0c;并打开路径选项&#xff0c;勾…...

远程管理命令:关机和重启

关机/重启 序号命令对应英文作用01shutdown 选项 时间shutdown关机 / 重新启动 一、shutdown shutdown 命令可以安全关闭 或者 重新启动系统。 选项含义-r重新启动 提示&#xff1a; 不指定选项和参数&#xff0c;默认表示 1 分钟之后 关闭电脑远程维护服务器时&#xff0…...

用Perl和HTTP::Tiny库的爬虫

HTTP::Tiny是Perl的一个轻量级HTTP客户端&#xff0c;适合简单的请求&#xff0c;但不像LWP那样功能全面&#xff0c;不过对于基本需求应该足够了。 首先&#xff0c;我需要熟悉HTTP::Tiny的基本用法。比如如何发起GET请求&#xff0c;设置user-agent&#xff0c;处理响应。用…...

MPP 架构解析:原理、核心优势与对比指南

一、引言&#xff1a;大数据时代的数据处理挑战 全球数据量正以指数级增长。据 Statista 统计&#xff0c;2010 年全球数据量仅 2ZB&#xff0c;2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈…...

2025.04.10-拼多多春招笔试第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数字重排最大化问题 问题描述 LYA是一位专业的数字设计师。她手中有两个数字序列 s 1 s_1...

前端-vue2核心

官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式&#xff08;刚开是接触Vue&#xff09; 我们看官网&#xff0c;可以直接在script引入vue版本。这里有两个版本&#xff0c;开发版和生产版本。我们两个都下载。 然后创建一个项目&#xff0c;将下载的生产版本和开发版本粘…...

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统…...

制作前的关键筹备:考试考核系统之核心要点

明确系统使用目的​ 制作考试考核系统前&#xff0c;企业需明确系统使用目的&#xff0c;这是开发基石&#xff0c;不同目的决定系统功能特性。用于员工培训考核时&#xff0c;系统要与培训内容结合&#xff0c;能生成相应考题&#xff0c;检验员工知识掌握程度&#xff0c;具备…...

【动手学深度学习】现代卷积神经网络:ALexNet

【动手学深度学习】现代卷积神经网络&#xff1a;ALexNet 1&#xff0c;ALexNet简介2&#xff0c;AlexNet和LeNet的对比3&#xff0c; AlexNet模型详细设计4&#xff0c;AlexNet采用ReLU激活函数4.1&#xff0c;ReLU激活函数4.2&#xff0c;sigmoid激活函数4.3&#xff0c;为什…...

Linux自启动脚本 systemctl

1.编写好脚本 #!/bin/bash /home/china/Linux/code/a.out2. 创建 Systemd 服务文件 sudo gedit /etc/systemd/system/my_script.service3.编写服务配置 将以下内容写入文件&#xff08;根据需求修改字段&#xff09;&#xff1a; [Unit] DescriptionMy Custom Shell Script…...

2024年KBS SCI1区TOP:信息增益比子特征分组赋能粒子群算法ISPSO,深度解析+性能实测

目录 1.摘要2.信息度量3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 特征选择是机器学习中的关键预处理步骤&#xff0c;广泛应用于实际问题。尽管粒子群算法&#xff08;PSO&#xff09;因其强大的全局搜索能力被广泛用于特征选择&#xff0c;但要开发一种高效的PSO方法…...

餐饮厨房开源监控安全系统的智能革命

面对日益严格的合规要求和消费者对卫生的信任危机&#xff0c;传统人工监督已力不从心&#xff1a;卫生死角难发现、违规操作难追溯、安全隐患防不胜防。如何让后厨更透明、更安全、更可信&#xff1f;餐饮厨房视频安全系统横空出世&#xff01;这套系统融合实时监控与AI技术&a…...

Ansys Electronics 变压器 ACT

你好&#xff0c; 在本博客中&#xff0c;我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤&#xff0c;该变压器为同心组件&#xff0c;双绕组&#xff0c;采用正弦电压激励&#xff0c;并应用…...

Redis与Lua原子操作深度解析及案例分析

一、Redis原子操作概述 Redis作为高性能的键值存储系统&#xff0c;其原子性操作是保证数据一致性的核心机制。在Redis中&#xff0c;原子性指的是一个操作要么完全执行&#xff0c;要么完全不执行&#xff0c;不会出现部分执行的情况。 Redis原子性的实现原理 单线程模型&a…...

Shell 脚本开发从入门到实战

第1章&#xff1a;什么是 Shell 与 Shell 脚本&#xff1f; 一、Shell 是什么&#xff1f; Shell 是一个命令解释器&#xff0c;是你在 Linux 里敲命令的地方。你平时用的命令如 cd、ls、echo&#xff0c;其实都由 Shell 来解析执行。最常见的 Shell 是 Bash&#xff0c;绝大…...

宇视设备视频平台EasyCVR打造智慧酒店安防体系,筑牢安全防线

一、需求背景 酒店作为人员流动频繁的场所&#xff0c;对安全保障与隐私保护有着极高的要求。为切实维护酒店内部公共区域的安全秩序&#xff0c;24小时不间断视频监控成为必要举措。通常情况下&#xff0c;酒店需在本地部署视频监控系统以供查看&#xff0c;部分连锁酒店还希…...

深度解读分销小程序商城源码系统:从搭建到运营的关键指南​​​​

在移动互联网浪潮的席卷下&#xff0c;电商领域持续变革与创新。分销小程序商城凭借其独特优势&#xff0c;如依托社交平台流量、便捷的购物体验、高效的分销推广模式等&#xff0c;成为众多企业和创业者开展线上业务的热门选择。深入了解分销小程序商城源码系统&#xff0c;从…...

BeeWorks:打造安全可控的企业内网即时通讯平台

在数字化办公时代&#xff0c;企业对即时通讯工具的需求日益增长&#xff0c;尤其是对数据安全和隐私保护有严格要求的行业&#xff0c;如金融、政府、医疗等。BeeWorks 作为一款专注于内网部署的即时通讯软件&#xff0c;凭借其卓越的安全性、稳定性、丰富的功能以及全面的信创…...

微信小程序开发:废品回收小程序-功能清单

用户端&#xff1a;便捷体验&#xff0c;触手可及 废品百科与估价指南&#xff1a;平台以直观的方式展示各类废品的分类标准与实时市场价格&#xff0c;让用户轻松掌握废品价值&#xff0c;决策更从容。 一键预约&#xff0c;轻松回收&#xff1a;用户只需轻触屏幕&#xff0c…...

【Grok 大模型深度解析】第一期:技术溯源与核心突破

一、Grok的技术基因:从Transformer到混合架构的演进 1.1 Transformer架构的局限性 2017年Google提出的Transformer架构彻底改变了自然语言处理领域,其自注意力机制(Self-Attention)在长序列建模上表现优异。然而,随着模型规模的增大,传统Transformer暴露出以下问题: 计…...

性能比拼: Redis vs Memcached

本内容是对知名性能评测博主 Anton Putra Redis vs Memcached Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中&#xff0c;我们将对比 Redis 和 Memcached。我会介绍一些功能上的不同&#xff0c;但主要关注 性能。 首先&#xf…...

Mujoco xml actuator

actuator general&#xff08;通用执行器&#xff09;motor&#xff08;电机执行器&#xff09;position&#xff08;位置伺服&#xff09;velocity&#xff08;速度伺服&#xff09;intvelocity&#xff08;积分速度伺服&#xff09;damper&#xff08;主动阻尼器&#xff09;…...

Mybatis Plus分页查询返回total为0问题

概述 最近开发公司新项目&#xff0c;使用 Mybatis Plus 分页&#xff0c;发现总数和总页数为0&#xff0c;在此记录问题和解决方案。 添加 MybatisPlusConfig /*** author: lanys* version: 1.0* 创建时间&#xff1a;2025年4月9日 14:24:40* Description: MybatisPlus分页…...

多卡分布式训练:torchrun --nproc_per_node=5

多卡分布式训练:torchrun --nproc_per_node=5 1. torchrun 实现规则 torchrun 是 PyTorch 提供的用于启动分布式训练作业的实用工具,它基于 torch.distributed 包,核心目标是简化多进程分布式训练的启动和管理。以下是其主要实现规则: 进程启动 多进程创建:torchrun 会…...

网络层-IP地址计算

例1&#xff1a;IP地址二进制与十进制互转 题目&#xff1a; 将二进制IP 11000000.10101000.00000001.00001010 转换为点分十进制。将IP地址 172.16.254.1 转换为二进制格式。 答案与解析&#xff1a; 转换步骤&#xff1a; 每个8位二进制转为十进制&#xff1a; 11000000 →…...

BeagleBone Black笔记

目录 参考资料开机led控制GPIO输入输出插网线联网安装gcc编译工具镜像备份验证备份完整性将内存卡插入目标BBBboot启动开关 参考资料 链接: BeagleBone Black使用&#xff08;一&#xff09;&#xff1a;狗板简介 链接: 使用Beaglebone Black的IO口 开机 直接用usb连接到电脑…...

【25软考网工笔记】第一章 计算机网络概述

目录 一、计算机网络发展与分类 1. 计算机网络形成和发展 1&#xff09;ICT 2&#xff09;计算机网络的发展 3&#xff09;我国互联网发展 2. 计算机网络分类 1&#xff09;通信子网和资源子网 2&#xff09;PAN、LAN、MAN、WAN 3&#xff09;其他分类方式 3. 计算机…...

Soybean Admin 配置vite兼容低版本浏览器、安卓电视浏览器(飞视浏览器)

环境 window10 pnpm 8.15.4 node 8.15.4 vite 5.1.4 soybean admin: 1.0.0 native-ui: 2.38.0 小米电视 MIUI TV版本&#xff1a;MiTV OS 2.7.1886(稳定版) 飞视浏览器&#xff1a;https://www.fenxm.com/1220.html在小米电视安装飞视浏览器可以去小红书查安装教程&#xff1a…...

MicroPython 开发ESP32应用教程 之 I2S、INMP441音频录制、MAX98357A音频播放、SD卡读写

本课程我们讲解Micropython for ESP32 的i2s及其应用&#xff0c;比如INMP441音频录制、MAX98357A音频播放等&#xff0c;还有SD卡的读写。 一、硬件准备 1、支持micropython的ESP32S3开发板 2、INMP441数字全向麦克风模块 3、MAX98357A音频播放模块 4、SD卡模块 5、面包板及…...

从零到一:基于DeepSeek-R1的智能贪吃蛇开发实战

《基于DeepSeek-R1的AI驱动高性能贪吃蛇游戏开发全流程解析》 一、技术选型与环境搭建 开发工具链 • 编辑器:VSCode/Sublime(支持代码生成插件) • 运行环境:Node.js v16+(用于API调用及后端服务) • 图形库:HTML5 Canvas(网页端)或OLED驱动(单片机场景) • AI引擎…...

数据结构与算法-动态规划-区间dp,状态机dp,树形dp

3-区间 DP 介绍 通常用 (dp[i][j]) 表示区间 ([i, j]) 上的某种最优值&#xff0c;比如 (dp[i][j]) 可以表示从下标 (i) 到 (j) 的元素进行某种操作所得到的最大收益、最小花费等。 状态转移方程&#xff1a;这是区间 DP 的关键。它描述了如何从较小的区间的最优解得到较大区…...

文件内容课堂总结

Spark-Core编程 Key-Value类型&#xff1a; partitionBy函数根据指定Partitioner重新进行分区&#xff0c;默认使用HashPartitioner groupByKey函数根据key对value进行分组&#xff0c;有三种函数签名 reduceByKey函数将数据按相同Key对Value进行聚合&#xff0c;与groupByKey相…...

【树莓派Pico FreeRTOS】-任务通知

任务通知 文章目录 任务通知1、硬件准备2、软件准备3、FreeRTOS的任务通知介绍4、任务通知数据传输实例RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (…...

c++11新内容补充

1.列表初始化 1.1传统{ }初始化 c98的{ }初始化主要是用于数组&#xff0c;以及结构体 1.2c11{ }初始化 1.让内置类型和自定义类型都可以用{ }实现多个数据初始化&#xff0c;而自定义类型的实现原理是类型转换&#xff08;没优化的版本是先构造临时对象&#xff0c;然后拷贝构…...

动态规划基础

动态规划 动态规划概论楼梯最短路最长上升子序列&#xff08;LIS)最长公共子序列&#xff08;LCS)最长回文子串 概率动态规划区间动态规划石子合并括号序列石子合并&#xff08;环形&#xff09; 树形动态规划统计人数没有上司的舞会 背包01背包完全背包多重背包分组背包 动态规…...

导入 Excel 批量替换文件名称及扩展名

重命名的需求是多种多样的&#xff0c;我们一个方法或一个工具很难说完全满足 100% 的文件重命名的需求。如果我们的文件重命名的需求非常的复杂的时候&#xff0c;我们能否有一个万全的方法来帮我们实现呢&#xff1f;那今天就给大家介绍一下导入 excel 的方式批量修改文件名称…...

降低AIGC检测率的AI润色提示词模板

以下是针对降低AIGC检测率的 AI润色提示词模板&#xff0c;涵盖语言风格优化、逻辑重构、学术规范强化等维度&#xff0c;结合反检测策略设计&#xff0c;可直接用于DeepSeek等工具&#xff1a; 一、标题与摘要优化 1. 标题去AI化 提示词&#xff1a; 请将以下标题改写成更学…...

系统思考—提升解决动态性复杂问题能力

感谢合作伙伴的信任推荐&#xff01; 客户今年的人才发展重点之一&#xff0c;是提升管理者应对动态性、复杂性问题的能力。 在深入交流后&#xff0c;系统思考作为关键能力模块&#xff0c;最终被纳入轮训项目——这不仅是一次培训合作&#xff0c;更是一场共同认知的跃迁&am…...

spring--整合Mybatis详解

整合Mybatis 步骤&#xff1a; 1.导入相关Maven依赖 junit mybatis mysql数据库连接 spring相关的 aop织入 mybatis-spring 2.编写配置文件 3.测试 回忆mybatis 还需连接数据库 导入依赖&#xff1a; <dependencies><dependency><groupId>juni…...