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

Flink源码阅读环境准备全攻略:搭建高效探索的基石

想要深入探索Flink的底层原理,搭建一套完整且适配的源码阅读环境是必经之路。这不仅能让我们更清晰地剖析代码逻辑,还能在调试过程中精准定位关键环节。接下来,结合有道云笔记内容,从开发工具安装、源码获取导入到调试配置,带你一步步构建高效的Flink源码阅读环境,过程中核心截图也会保留,助你直观理解操作要点。

一、开发工具与基础环境搭建

1.1 JDK安装与配置

Flink基于Java开发,JDK环境是运行和编译的基础。当前Flink对JDK 8及以上版本支持良好,为了获得更好的兼容性和性能,推荐安装JDK 11或更高版本。

安装完成后,需正确配置环境变量:

  • Linux/Mac系统:在终端编辑.bashrc.bash_profile文件,添加如下内容(路径根据实际安装情况调整):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

保存文件后,执行source ~/.bashrcsource ~/.bash_profile 使配置生效。通过 java -versionjavac -version 命令检查配置是否成功,若能正确显示JDK版本信息,则表示安装和配置无误。

  • Windows系统:通过“控制面板” - “系统” - “高级系统设置” - “环境变量”,在系统变量中找到Path,点击“编辑”,新建并添加JDK安装目录下的bin路径,例如C:\Program Files\Java\jdk-11.0.16\bin

1.2 Maven安装与配置

Flink项目采用Apache Maven进行构建和依赖管理,因此需要安装Maven工具。从Maven官方网站下载对应操作系统的安装包,解压到合适的目录后,同样要配置环境变量:

  • Linux/Mac系统:在终端编辑环境变量配置文件,添加以下内容(/path/to/apache-maven-x.x.x 为实际解压路径):
export MAVEN_HOME=/path/to/apache-maven-x.x.x
export PATH=$MAVEN_HOME/bin:$PATH

执行 source 命令使配置生效,然后在命令行输入 mvn -v ,若能显示Maven版本信息,说明安装成功。

  • Windows系统:参照JDK环境变量配置方式,在系统变量的Path中添加Maven安装目录下的bin路径。

为了加快依赖下载速度,可配置国内镜像源(如阿里云镜像)。找到Maven安装目录下conf文件夹中的settings.xml文件,在<mirrors>标签内添加如下内容:

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>保存文件后,后续Maven下载依赖时将从阿里云镜像源获取,大幅提升下载效率。### 1.3 IDE选择与安装
一款强大的集成开发环境(IDE)能显著提升源码阅读和调试效率,推荐使用IntelliJ IDEA或Eclipse。以IntelliJ IDEA为例:
1. 从IntelliJ IDEA官方网站下载社区版或旗舰版安装包,按照安装向导完成安装。
2. 首次启动时,在“Configure” - “Project Defaults” - “Project Structure”中,配置JDK路径,确保IDEA识别已安装的JDK环境,以便后续正确编译和运行Flink项目。## 二、Flink源码获取与项目导入
### 2.1 源码获取途径
Flink源码托管在GitHub上,获取方式主要有两种:
- **Git克隆**:打开命令行,选择合适的本地目录,执行以下命令克隆Flink项目仓库:
```bash
git clone https://github.com/apache/flink.git

如需获取特定版本的代码,可通过 git checkout 命令切换到对应分支或标签,例如获取Flink 1.16版本:

git checkout release-1.16
  • 下载压缩包:在GitHub的Flink项目页面,点击“Code”按钮,选择“Download ZIP”,将源码以压缩包形式下载到本地后解压。不过这种方式不利于后续源码更新,更推荐使用Git克隆。

2.2 项目导入IntelliJ IDEA

  1. 打开IntelliJ IDEA,点击“Open”,在文件选择框中找到本地克隆或解压后的Flink项目根目录,点击“OK”。
  2. IDEA会自动识别项目中的pom.xml文件,弹出导入Maven项目提示框,点击“Import Changes”,等待Maven下载项目所需的依赖库。这一过程耗时取决于网络状况和依赖数量。
  3. 导入完成后,在IDEA的Project视图中,可看到Flink项目完整的目录结构,包含各个模块和子项目。此时,若遇到依赖相关问题,可通过Maven的依赖分析工具解决。

三、环境配置与调试准备

3.1 项目编译

在IDEA的Terminal窗口中,进入Flink项目根目录,执行 mvn clean install -DskipTests 命令进行项目编译:

  • clean 用于清除之前编译生成的文件;
  • install 将编译后的项目安装到本地Maven仓库;
  • -DskipTests 跳过测试环节,因为Flink测试套件运行时间长且可能依赖外部资源。
    编译过程中若出现错误,需根据提示检查依赖冲突、代码语法等问题。例如,若提示依赖冲突,可执行 mvn dependency:tree 命令查看依赖树结构,定位冲突依赖后,在pom.xml文件中通过<exclusions>标签排除冲突版本,再重新导入项目。

3.2 调试配置

以调试Flink的Local模式启动流程为例,进行调试配置:

  1. 在IDEA中找到关键类,如 org.apache.flink.client.LocalExecutor,在关键代码行设置断点。
  2. 点击IDEA右上角的“Edit Configurations”,创建一个新的“Application”类型配置:
    • 在“Main class”中选择Flink作业的入口类,如 org.apache.flink.streaming.api.environment.StreamExecutionEnvironment 中执行作业的相关方法;
    • 在“Program arguments”中添加作业运行所需参数(若有);
    • 在“Working directory”中选择Flink项目根目录。
  3. 配置完成后,点击“OK”,通过点击“Debug”按钮启动调试模式,逐步追踪代码执行流程,查看变量值变化,深入理解Flink源码逻辑。
    在这里插入图片描述

四、常见问题与解决方案

4.1 IDE配置异常

如果IDEA无法识别Flink项目中的Java类,可能是JDK配置错误或项目模块设置有误。可在IDEA的“File” - “Project Structure”中,检查“Project SDK”是否为正确的JDK版本,以及“Modules”中是否正确配置了项目源码目录、依赖库等。若问题仍未解决,尝试重新导入项目或清除IDEA缓存并重启。

4.2 编译错误处理

编译过程中出现错误时,仔细查看错误提示:

  • 若是代码语法错误,直接修改对应代码;
  • 缺少依赖则在pom.xml中添加相应依赖项;
  • 与特定模块相关的错误,需检查该模块的配置和实现逻辑。同时,可参考Flink官方文档或社区论坛寻找类似问题的解决方案。

完成上述Flink源码阅读环境的准备工作,就如同为探索Flink技术奥秘搭建好了稳固的平台。无论是研究Flink的作业调度机制,还是剖析数据处理流程,都能在这个环境中高效进行。若在搭建过程中遇到其他问题,或是想了解更多特定模块的调试技巧,欢迎随时交流,一起在Flink的源码世界中深入探索!

相关文章:

Flink源码阅读环境准备全攻略:搭建高效探索的基石

想要深入探索Flink的底层原理&#xff0c;搭建一套完整且适配的源码阅读环境是必经之路。这不仅能让我们更清晰地剖析代码逻辑&#xff0c;还能在调试过程中精准定位关键环节。接下来&#xff0c;结合有道云笔记内容&#xff0c;从开发工具安装、源码获取导入到调试配置&#x…...

【破局痛点,赋能未来】领码 SPARK:铸就企业业务永续进化的智慧引擎—— 深度剖析持续演进之道,引领数字化新范式

摘要 在瞬息万变的数字时代&#xff0c;企业对业务连续性、敏捷创新及高效运营的需求日益迫切。领码 SPARK 融合平台&#xff0c;秉持“持续演进”这一核心理念&#xff0c;以 iPaaS 与 aPaaS 为双擎驱动&#xff0c;深度融合元数据驱动、智能端口调度、自动化灰度切换、AI 智…...

Flink SQL Connector Kafka 核心参数全解析与实战指南

Flink SQL Connector Kafka 是连接Flink SQL与Kafka的核心组件&#xff0c;通过将Kafka主题抽象为表结构&#xff0c;允许用户使用标准SQL语句完成数据读写操作。本文基于Apache Flink官方文档&#xff08;2.0版本&#xff09;&#xff0c;系统梳理从表定义、参数配置到实战调优…...

Linux 服务器运维:磁盘管理与网络配置

&#x1f935;‍♂️ 个人主页&#xff1a;布说在见 ✍&#x1f3fb;作者简介&#xff1a; &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…...

PyTorch 入门学习笔记

目录 1 张量 1&#xff09;张量的初始化和属性 2&#xff09;张量操作 3&#xff09;使用 NumPy 进行桥接 2 torch.autograd 1&#xff09;背景 2&#xff09;在 PyTorch 中的使用 3&#xff09;Autograd 的微分机制 4&#xff09;计算图原理 3 神经网络 1&#xff…...

9大策略深度解析MySQL多表JOIN性能优化

一、多表JOIN的现实挑战 在实际开发中&#xff0c;MySQL多表JOIN场景主要源于两类场景&#xff1a; • 历史遗留系统&#xff1a;老代码中未严格遵循范式设计的SQL语句• 数据库迁移&#xff1a;从Oracle迁移至MySQL时保留的复杂关联查询 这类操作潜藏多重风险&#xff1a; …...

CSS 逐帧动画

CSS 逐帧动画实现指南 逐帧动画(frame-by-frame animation)是一种通过快速连续显示一系列静态图像来创造运动效果的技术。以下是使用CSS实现逐帧动画的几种方法。 1. 使用 steps() 计时函数 这是实现逐帧动画最常用的方法&#xff0c;通过animation-timing-function的steps(…...

UE5 游戏模板 —— ThirdPersonGame

UE5 游戏模板 —— ThirdPersonGame 前言一、初始化旋转控制参数1.参数一2.参数二3.参数三4.参数四 二、输入系统总结 前言 有了前面的铺垫&#xff0c;第三人称模板简直是手到擒来了&#xff0c;我们只需要注意一些初始化的变量是做什么的即可&#xff0c;因为UE的Character …...

java中关于异步转同步的一些解决方案的对比与思考。【spring mvc堵塞式】

文章目录 1、Spring MVC堵塞式编程中的技术方案a&#xff09; 最简单的方案&#xff0c;使用 DeferredResult 代码如下&#xff0c;代码解读&#xff1a;最终控制台输出如下。用户收到的结果 b) 上点难度&#xff0c;使用redis监听事件&#xff0c;根据事件的不同返回不同的数据…...

【数据结构与算法】数据结构核心概念系统梳理

第一章 绪论:基础概念体系 🚩算法:问题求解步骤的描述。 🚩非递归的算法效率更高。 1.1 逻辑结构 vs 存储结构 维度逻辑结构存储结构(物理结构)定义数据元素之间的逻辑关系数据结构在计算机中的实现方式分类线性/树形/图/集合顺序/链式/索引/散列独立性独立于存储结构…...

《HTTP权威指南》 第7章 缓存

带着问题学习&#xff1a; 缓存如何提高性能如何衡量缓存的有效性缓存置于何处作用最大HTTP如何保持缓存副本的新鲜度缓存如何与其他缓存及服务器通信 web缓存是可以自动保存常见文档副本的HTTP设备。 缓存优点 减少冗余的数据传输&#xff0c;节省网络费用缓解网络瓶颈问题&…...

【Zephyr 系列 28】MCU 闪存文件系统详解:LittleFS + NVS + 块设备设计实战

&#x1f9e0;关键词&#xff1a;Zephyr 文件系统、LittleFS、NVS、Flash 分区、嵌入式存储、断电保护、wear leveling &#x1f4cc; 1. 为什么 MCU 上需要文件系统&#xff1f; 在嵌入式开发中&#xff0c;很多开发者起初直接操作 Flash 保存参数&#xff0c;但随着需求增长…...

ICML 2025 | 时间序列(Time Series)论文总结

ICML 2025将在2025年7月13日至7月19日&#xff08;周六&#xff09;在温哥华会议中心举行&#xff0c;本文总结了ICML 2025有关时间序列(Time Series)相关文章&#xff0c;共计63篇。 时间序列Topic&#xff1a;预测&#xff0c;分类&#xff0c;异常检测&#xff0c;生成&…...

理解后端开发中的中间件(以gin框架为例)

中间件(Middleware)是后端开发中的一个核心概念&#xff0c;它在请求(Request)和响应(Response)之间扮演着桥梁角色。以下是关于中间件的详细解释&#xff1a; 基本概念 中间件是在请求到达最终处理程序之前或响应返回客户端之前执行的一系列函数或组件。它可以&#xff1a; 访…...

【分布式技术】Bearer Token以及MAC Token深入理解

Bearer Token以及MAC Token深入理解 **Bearer Token 详解****1. 什么是 Bearer Token&#xff1f;****2. Bearer Token 的构建详情****&#xff08;1&#xff09;生成流程****&#xff08;2&#xff09;Token 示例&#xff08;JWT&#xff09;****&#xff08;3&#xff09;Tok…...

WebRTC(七):媒体能力协商

目的 在 WebRTC 中&#xff0c;每个浏览器或终端支持的音视频编解码器、分辨率、码率、帧率等可能不同。媒体能力协商的目的就是&#xff1a; 确保双方能“听得懂”对方发的媒体流&#xff1b;明确谁发送、谁接收、怎么发送&#xff1b;保障连接的互操作性和兼容性。 P2P的基…...

(线性代数最小二乘问题)Normal Equation(正规方程)

Normal Equation&#xff08;正规方程&#xff09; 是线性代数中的一个重要概念&#xff0c;主要用于解决最小二乘问题&#xff08;Least Squares Problem&#xff09;。它通过直接求解一个线性方程组&#xff0c;找到线性回归模型的最优参数&#xff08;如权重或系数&#xff…...

【机器学习】数学基础——标量

目录 一、标量的定义 二、标量的核心特征&#xff1a;无方向的纯粹量级 2.1 标量 vs 矢量 直观对比 三、 标量的数学本质&#xff1a;零阶张量 3.1 张量阶数金字塔 3.2 标量的数学特性 四、 现实世界的标量图谱 4.1 常见标量家族 4.2 经典案例解析 五、 标量的运算奥秘…...

基于python代码的通过爬虫方式实现TK下载视频(2025年6月)

Tk的视频页面通常需要登录才能获取完整数据,但通过构造匿名游客的请求,我们可以绕过登录限制,提取视频的元信息(如标题、ID和播放地址)。核心思路如下: 构造匿名Cookie:通过模拟浏览器的请求,获取Tk服务器分配的游客Cookie。解析网页:利用BeautifulSoup解析HTML,定位…...

Go 语言的堆糖图片爬虫

基于 Go 语言的堆糖图片爬取探索之旅 在互联网的浩瀚海洋中&#xff0c;堆糖网以其丰富多样的高清图片、美图壁纸等内容吸引了众多用户。对于图片爱好者来说&#xff0c;能高效获取心仪的图片资源无疑是一件极具吸引力的事情。今天&#xff0c;就带大家走进一段基于 Go 语言的…...

python+uni-app基于微信小程序的儿童安全教育系统

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示&#xff1a;文章底部获取博主联系方式&#xff01;&#xff01;&#xff01;&#xff01;本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献&#xff1a;源码获取/详细视频演示 ##项目…...

DAY 39 图像数据与显存

图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader ,…...

ELK搭建

1、elasticsearch和kibana搭建配置见 https://blog.csdn.net/yh_zeng2/article/details/148812447?spm1001.2014.3001.5501 2、logstash 下载 下载和elasticsearch版本一致的logstash&#xff0c;下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic …...

【ELK(Elasticsearch+Logstash+Kibana) 从零搭建实战记录:日志采集与可视化】

ELK(ElasticsearchLogstashKibana) 从零搭建实战记录&#xff1a;日志采集与可视化 本文记录了我在搭建ELK(Elasticsearch, Logstash, Kibana)技术栈时的完整实战过程。使用Docker Compose快速搭建了ELK服务端&#xff08;监控主机&#xff09;&#xff0c;并通过Filebeat实现…...

反无人机系统:技术利刃如何守护低空安全?

反无人机系统&#xff1a;技术利刃如何守护低空安全&#xff1f; ——从军事防御到城市安防的全景解析 一、技术体系&#xff1a;从“电磁软杀伤”到“激光硬摧毁”的立体防御网 反无人机技术本质是一场“降维打击”&#xff1a;用百万级防御系统对抗千元级消费无人机。当前…...

第十章——8天Python从入门到精通【itheima】-102-Python基础综合案例-数据可视化(pyecharts的入门使用+数据处理)

目录 102节——pyecharts的入门使用 1.学习目标 2.pyecharts入门——基础折线图 3.pyecharts的配置对象有哪些&#xff1f; 4.全局配置——set_global_opts 5.小节总结 103节——数据处理 1.学习目标 2.无法继续关于第一阶段的pyecharts的相关学习 因为关于JSON数据获…...

Neo4j 中存储和查询数组数据的完整指南

Neo4j 中存储和查询数组数据的完整指南 图形数据库 Neo4j 不仅擅长处理节点和关系&#xff0c;还提供了强大的数组(Array)存储和操作能力。本文将全面介绍如何在 Neo4j 中高效地使用数组&#xff0c;包括存储、查询、优化以及实际应用场景。 数组在 Neo4j 中的基本使用 数组…...

云原生/容器相关概念记录

文章目录 网络与虚拟化技术云平台与架构容器与编排容器网络方案性能优化与工具硬件与协议 网络与虚拟化技术 P4可编程网关 P4: Programming Protocol-independent Packet Processors一种基于P4语言的可编程网络设备&#xff0c;支持自定义数据包处理逻辑。P4可编程技术详解&am…...

uni-app项目实战笔记21--uniapp缓存的写入和读取

一、缓存的写入 uni.setStorageSync("storageClassList",classifyList.value) 二、缓存的读取&#xff0c;如果缓存不存在&#xff0c;则返回空数组 const storageClassList uni.getStorageSync("storageClassList") || []; 三、对读取到的数据进行转…...

操作系统概述

覆盖了操作系统概述、运行机制、中断、异常、操作系统的五大结构、虚拟机。 借鉴&#xff1a;王道、我的好朋友杨某、我的笔记。 一、操作系统概念 概念 1.操作系统体现了封装思想 由于底层硬件只接受二进制的指令不方便用户操作&#xff0c;所以操作系统把这些封装成简易的…...

探索数据的力量:Elasticsearch中指定链表字段的统计查询记录

目录 一、基本的数据结构说明 二、基本的统计记录 &#xff08;一&#xff09;统计当前索引中sellingProducts的所有类型 &#xff08;二&#xff09;检索指定文档中sellingProducts的数据总量 &#xff08;三&#xff09;检索指定文档中sellingProducts指定类型的数量统计…...

【Datawhale组队学习202506】YOLO-Master task03 IOU总结

系列文章目录 task01 导学课程 task02 YOLO系列发展线 文章目录 系列文章目录前言1 功能分块1.1 骨干网络 Backbone1.2 颈部网络 Neck1.3 头部网络 Head1.3.1 边界框回归头1.3.2 分类头 2 关键概念3 典型算法3.1 NMS3.2 IoU 总结 前言 Datawhale是一个专注于AI与数据科学的开…...

C/C++数据结构之静态数组

概述 静态数组是C/C中一种基础的数据结构&#xff0c;它允许用户在编译时便确定数组的大小&#xff0c;并分配固定数量的连续存储空间来存放相同类型的元素。静态数组的主要特点是&#xff1a;其大小在声明时就必须指定&#xff0c;且在其生命周期内保持不变。这也意味着&#…...

pyqt f-string

文章目录 一、f-string的基本语法二、代码中的具体应用拼接效果 三、f-string的核心优势四、与其他字符串格式化方式的对比五、在Qt程序中的实际作用六、扩展用法&#xff1a;在f-string中添加格式说明 Python的 f-string&#xff08;格式化字符串字面值&#xff09; 特性&…...

夏普 AR-2348SV 打印机信息

基本信息&#xff1a;这是一款黑白 A3 激光多功能数码复合机&#xff0c;可实现打印、复印、扫描功能。性能参数 打印 / 复印速度&#xff1a;23 张 / 分钟。分辨率&#xff1a;600x600dpi&#xff0c;能确保文字和图像清晰。最大打印 / 复印尺寸&#xff1a;A3。纸张支持&…...

跨个体预训练与轻量化Transformer在手势识别中的应用:Bioformer

目录 一、从深度学习到边缘部署&#xff0c;手势识别的新突破 &#xff08;一&#xff09;可穿戴设备 边缘计算 个性化医疗新可能 &#xff08;二&#xff09;肌电信号&#xff08;sEMG&#xff09;&#xff1a;手势识别的关键媒介 &#xff08;三&#xff09;挑战&#…...

探索常识性概念图谱:构建智能生活的知识桥梁

目录 一、知识图谱背景介绍 &#xff08;一&#xff09;基本背景 &#xff08;二&#xff09;与NLP的关系 &#xff08;三&#xff09;常识性概念图谱的引入对比 二、常识性概念图谱介绍 &#xff08;一&#xff09;常识性概念图谱关系图示例 &#xff08;二&#xff09…...

人人都是音乐家?腾讯开源音乐生成大模型SongGeneration

目录 前言 一、SongGeneration 带来了什么&#xff1f; 1.1 文本控制与风格跟随&#xff1a;你的想法&#xff0c;AI 精准实现 1.2 多轨生成&#xff1a;从“成品”到“半成品”的巨大飞跃 1.3 开源&#xff1a;推倒“高墙”&#xff0c;共建生态 二、3B 参数如何媲美商业…...

一,python语法教程.内置API

一&#xff0c;字符串相关API string.strip([chars])方法&#xff1a;移除字符串开头和结尾的空白字符&#xff08;如空格、制表符、换行符等&#xff09;&#xff0c;它不会修改原始字符串&#xff0c;而是返回一个新的处理后的字符串 chars&#xff08;可选&#xff09;&…...

python中学物理实验模拟:凸透镜成像和凹透镜成像

python中学物理实验模拟&#xff1a;凸透镜成像和凹透镜成像 凸透镜成像 凸透镜是指中间厚、边缘薄的透镜。它对光线有会聚作用&#xff0c;即光线通过凸透镜后会向主光轴方向偏折。 成像原理 基于光的折射&#xff0c;平行于主光轴的光线经凸透镜折射后会聚于焦点&#xff…...

【AGI】突破感知-决策边界:VLA-具身智能2.0

突破感知-决策边界&#xff1a;VLA-具身智能2.0 &#xff08;一&#xff09;技术架构核心&#xff08;二&#xff09;OpenVLA&#xff1a;开源先锋与性能标杆&#xff08;三&#xff09;应用场景&#xff1a;从实验室走向真实世界&#xff08;四&#xff09;挑战与未来方向&…...

2D曲线点云平滑去噪

2D曲线点云&#xff0c;含许多噪声&#xff0c;采用类似移动最小二乘的方法&#xff08;MLS)分段拟合抛物线并投影至抛物线&#xff0c;进行点云平滑去噪。 更通俗的说法是让有一定宽度的曲线点云&#xff0c;变成一条细曲线上的点。 分两种情况进行讨论&#xff1a; 1&#…...

靶场(二十一)---小白心得靶场体会---DVR4

先看端口&#xff0c;看到了一个dvr的服务&#xff0c;老规矩只要有服务就先去看看 PORT STATE SERVICE VERSION 22/tcp open ssh Bitvise WinSSHD 8.48 (FlowSsh 8.48; protocol 2.0; non-commercial use) | ssh-hostkey: | 3072 21:25:f0:53:b4…...

Qt + C++ 入门2(界面的知识点)

补充前面没有说到的一点就是&#xff0c;qt的页面你可以用qt自带的也就是前面所说的自动生成.UI文件生成前端所谓的界面&#xff0c;然后往里面拖控件就可以了&#xff0c;这个UI界面非常的适合用于新手&#xff0c;以及某些软件少量的界面应用 。但是有一个难点就是后期这个UI…...

计算机网络第九章——数据链路层《流量控制和可靠传输》

一、回顾概念 前面上一章讲了数据链路层的《差错控制》&#xff0c;那么回顾一下差错控制和可靠传输的区别&#xff1a; 差错控制&#xff1a;发现一个帧里的【位错&#xff08;比特错&#xff09;】 检错&#xff08;奇偶校验码、CRC循环冗余校验码&#xff09;&#xff1a;接…...

Zephyr 调试实用指南:日志系统、Shell CLI 与 GDB 全面解析

本文深入讲解 Zephyr 的调试利器&#xff0c;包括统一日志系统&#xff08;logging subsystem&#xff09;、内置命令行&#xff08;Shell CLI&#xff09;、与 GDB 调试集成方法&#xff0c;帮助开发者快速定位问题、分析运行时行为&#xff0c;实现高效开发与排障。 一、日志…...

【知识图谱提取】【阶段总结】【LLM4KGC】LLM4KGC项目提取知识图谱推理部分

文章目录 前言LLM4KGC的三个部分显卡使用效果前言 之前在学习基于大模型的知识图谱提取,就找到了LLM4KGC这个项目: 项目地址: https://github.com/ChristopheCruz/LLM4KGC/ 总体来说,这个项目没有什么比较高深的idea,年份也比较古老,但确实挺适合入手的。主要是绝对简…...

基于YOLO的智能车辆检测与记录系统

基于YOLO的智能车辆检测与记录系统 摘要 本报告总结了智能车辆检测系统的开发工作&#xff0c;主要包括车辆数据标注、YOLO模型训练及QT交互系统搭建三部分。通过使用专业标注工具完成车辆目标数据集的标注与预处理&#xff0c;基于YOLO模型构建车辆检测算法并优化训练流程&a…...

5.2 Qt Creator 使用FFmpeg库

一、目录结构 ├─3rdparty # 第三方依赖库 │ └─ffmpeg-4.4.3 # ffmpeg库 │ ├─mingw # 用MinGW64编译的库 │ │ ├─bin │ │ ├─include │ │ └─lib │ └─msvc # 用MSVC编译的库 │ ├─bin │ …...

C++基础练习 sort函数,用于排序函数

题目&#xff1a; https://acm.hdu.edu.cn/showproblem.php?pid2039 解答&#xff1a; #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…...