- 博客(190)
- 资源 (24)
- 收藏
- 关注
原创 深入理解Linux网络技术内幕-知识图谱
知识点核心本质面试/实战极易踩坑点NAPI 机制中断+轮询混合,解决中断风暴budget用完退出,未清空队列时不要调用,否则网卡会永久卡死。sk_buff 零拷贝四指针()滑动克隆的skb共享数据区,若修改数据必须在克隆体上深拷贝(skb_copy),否则污染原包。路由查找优先查缓存,未命中走 FIB策略路由(fib_rules)是按优先级顺序匹配的,配置不当可能导致流量突然“失踪”。ARP 状态机REACHABLE->STALE->DELAY是优化窗口。
2026-07-09 13:35:40
332
原创 深入理解Linux网络技术内幕-P7
它引入了路由表的基本构成、路由查找算法(LPM)、路由条目类型、作用域(Scope)以及多网卡主机的路由行为等核心概念。与普通路由不同,这些特性(策略路由、多路径、RPF、动态路由)使得Linux不仅仅是一个简单的数据包转发器,而是能够胜任大型骨干网路由器、高性能负载均衡器以及复杂数据中心网关的核心角色。如果第33章的路由缓存是“便利贴”,第34章的路由表(FIB)是“中央数据仓库”,那么第35章讲的就是**“调度员如何根据包裹信息,在仓库里精确找到对应路线”**的完整决策过程。由于第32章已详细解析过。
2026-07-09 11:24:10
373
原创 深入理解Linux网络技术内幕-P5
IPV4Chapter 18. IPv4 Concepts(IPv4概念与头部解析)Chapter 19. IPv4 Foundations and Features(IP层基础与选项处理)Chapter 20. IPv4 Forwarding and Local Delivery(转发与本地投递)Chapter 21. IPv4 Transmission(IP层发送路径)Chapter 22. IPv4 Handling Fragmentation(分片与重组)
2026-07-09 00:10:22
325
原创 深入理解Linux网络技术内幕- P4
的完整软件实现,包括虚拟设备的生命周期(创建/绑定/删除)、数据帧的二层转发逻辑、MAC地址表(FDB)的维护,以及STP(生成树协议)在内核空间的具体实现机制(如定时器、BPDU收发与状态机)。虽然本章是纯概念介绍,没有定义具体的 Linux 内核结构体,但为了后续章节的理解,我们提前剖析**“转发数据库(Forwarding Database,FDB)”**这一核心抽象的设计哲学。Linux 网桥的设计不依赖专用的socket或复杂的管理协议,而是坚持“一切皆文件”的哲学,将网桥的所有配置参数(如。
2026-07-08 23:47:14
403
原创 深入理解Linux网络技术内幕P3
硬件中断与下半部机制,可以类比成工厂的。本章详细阐述了 Linux 内核中,以及现代 Linux 网络子系统如何通过和机制,将高频率的网络包接收处理从“中断上下文”剥离到“进程上下文或软中断上下文”中执行,从而解决高并发下“中断风暴”导致的系统死锁或性能崩塌(Receive-Livelock)问题。
2026-07-08 22:47:36
204
原创 现代C++ 并发编程-学习指南
核心理论断言、白话类比与大师避坑指南保姆级可编译运行代码编译与运行:内核/系统验证实验目的:在系统层面确认编译器及标准库对 C++17 的支持程度。使用 Compiler Explorer 快速对比 GCC/Clang/MSVC 对某一 C++17 特性(如 )的支持情况,确认最低版本要求。理论-实践映射表可深挖的知识点与学习链接代码练习任务C++17 引入了、、和等标准属性,它们是一种向编译器和协作者传递代码意图的“说明”。合理使用可以减少警告、避免误用,并提升代码可读性。本节将拆解
2026-07-07 15:08:46
516
原创 C++数据并行
本章勾勒 C++17 的整体背景与主要改进方向,帮助读者快速建立“C++17 改变了什么、为什么重要”的认知,并说明本书的阅读策略。核心理论断言,白话类比与大师避坑指南保姆级可编译运行代码以下代码展示了 C++17 的两大基础特性:结构化绑定和 初始化器。保存为 ,编译命令:预期输出:。内核/系统验证实验用 宏在运行时验证编译标准,并打印详细编译信息。编译并运行此程序,可实时确认当前工具链是否真正启用 C++17。同时可以尝试修改编译选项(如 )观察输出变化,加深对编译标志的理解。理论-实践映
2026-07-07 14:20:22
216
原创 C++11 for Programmers
重点介绍类型推导 (auto)、基于范围的 for 循环、nullptr 关键字、统一的初始化语法等标志性语法糖,并强调这些特性在零或少运行时开销下极大地提升代码可读性与健壮性。断言1: 是“让编译器替你写类型”的语法糖编译器从初始化表达式中推导变量类型,绝无运行时开销,相当于编译期“类型占位符”。白话类比:就像餐厅服务员根据你点的菜自动选配合适的餐具,你只需说“来份牛排”,不必交代“给我刀叉”。大师避坑指南:避免 (推导会剥去引用与顶层 ),若意图保留引用或常量性应显式用 或 。断言2:基于范围
2026-07-07 09:58:07
440
原创 c++线程之std::async浅析
指定该策略时,std::async会立即创建一个新的线程(或复用线程池中的线程),并在新线程中执行目标任务,任务的执行与主线程完全并行。指定该策略时,任务不会立即执行,也不会创建新线程;只有当调用或时,任务才会在调用者线程(通常是主线程)中同步执行。这是std::async未指定策略时的默认行为(C++17 也可写为),本质是“异步或延迟”的二选一,由编译器/操作系统决定采用哪种方式。std::asyncasync强制并行,deferred延迟同步,默认策略由系统自动选择;
2026-01-06 17:36:04
162
原创 c++线程之标准库的并行算法研究
C++17并行算法基于执行策略seqparpar_unseq)驱动,无需手动管理线程,核心头文件为<numeric>;常用并行算法包括(遍历)、std::sort(排序)、(转换)、(聚合),各有明确适用场景;并行算法底层执行流程为「任务拆分→线程调度→并行执行→结果汇总(聚合类)→同步返回」;关键优化点:优先使用par策略、选择随机访问迭代器容器、保证无数据竞争、仅大数据量场景启用并行。执行策略完整名称常用别名执行模式线程特性核心约束适用场景纯串行执行单线程(调用线程)
2026-01-04 17:34:38
323
原创 c++线程之任务
C++中的任务是一段待执行的逻辑单元,它封装了需要完成的具体工作(如计算、IO操作、业务逻辑等),本质上表现为「可调用对象(Callable Object)」—— 任务只定义「要做什么」,不关心「谁来执行(线程)」和「什么时候执行(同步/异步)」。任务 = 一份「工作清单」(只写了要做什么,没人执行就是废纸);线程 = 一个「工人」(消耗粮食(系统资源),能按清单执行工作,一个工人可以做多份清单,一份清单也可以分给多个工人做);
2026-01-04 16:58:17
173
原创 c++线程之再研究研究多线程
启动差异:C++11 线程无需手动调用start()构造时传入可调用对象即自动启动底层线程(与 Java 线程核心区别)。可连接状态对象的「可连接性」是核心,joinable()返回true时,必须调用join()或detach(),否则对象析构崩溃。阻塞场景:C++11 标准库支持三种常见阻塞:时间阻塞(sleep_for)、锁竞争阻塞(std::mutex)、条件阻塞(终止处理:线程内未捕获的异常会导致程序崩溃,需在线程内部做好异常捕获;线程正常终止后,通过join()回收资源。分离线程。
2026-01-04 16:55:34
486
原创 多线程与锁
若线程t既未调用t.join(),也未调用t.detach(),则t处于可汇入状态(通过成员函数可判断,返回true本质:线程t的“生命周期”仍与创建它的线程对象()绑定,尚未完成资源的最终回收或分离。C++互斥锁的核心是“通过灵活的临界区管控,平衡共享数据的安全性与并发效率选对互斥对象:根据“是否递归”“是否限时”“是否读写分离”需求,选择std::mutex;用对锁定方式:递归场景用,超时场景用,读多写少用的共享锁;优先RAII锁:避免手动lock()unlock()
2026-01-04 16:15:48
679
原创 C++线程之内存模型
该结构体的内存模型受位域规则:0截断)、自然对齐(char填充3字节、double8字节对齐)、类型大小(int4字节、double8字节)共同影响;汇编代码通过成员偏移地址和位运算指令,精准验证了理论布局,位域成员依赖整数单元+位运算访问,区分结构体自身内存与堆内存;核心关键:匿名位域:0强制结束位域单元、基础类型对齐要求、非基础类型(std::string)的内存分布特性。单个线程内:所有内存操作严格按照代码的书写顺序执行(无指令重排,或重排对程序员完全透明)跨线程间。
2026-01-04 15:21:25
615
原创 C++17完整导引-组件之std::string_view
在`C++17`中,`C++`标准库引入了一个特殊的字符串类:`std::string_view`
2023-06-28 20:49:36
3312
原创 C++17完整导引-组件之std::byte
std::byte 是一种独立类型,它实现指定于 C++ 语言定义中的字节的概念。同 char 与 unsigned char ,它能用于访问其他对象所占据的生内存(对象表示),但不同于这些类型,它不是字符类型且非算术类型。 byte 只是位的汇集,而且只对它定义逐位运算符。
2023-06-13 09:58:05
2121
原创 C++17完整导引-新组件之std::any
std::any is the smarter void*/shared_ptr. You can initialize an any with a value of any copyable type
2023-05-29 10:39:00
2037
原创 设计模式-基本概念
一个被共享的对象不能直接把自身的原始指针(raw pointer)this传递给std::shared_ptr的容器对象(如一个std::vector),因为这会生成该被共享的对象的额外的共享指针控制块。为此,std::shared_ptr API提供了一种类模板设施std::enable_shared_from_this,包含了成员函数shared_from_this,从而允许从this创建一个std::shared_ptr对象。声明一个实现所有三个类的特征的类型的变量,而不必实际构造一个全新的。
2023-05-05 10:26:55
675
原创 windows安装ubuntu时错误WslRegisterDistribution failed with error: 0x8007023e的解决方法
我按照文档激活 wsl 2,然后尝试安装 Linux 发行版,但失败并出现以下错误正在安装,这可能需要几分钟...WslRegisterDistribution 失败,出现错误:0x8007023e错误:0x8007023e {应用程序错误}异常 s (0x
2023-04-06 19:53:34
6061
3
原创 C++std::async 简单研究
它是 `c++ `标准库提供的 `API`,用于异步(创建单独的线程)或同步(正常调用函数)执行任务(作为参数传递)。 这取决于启动策略。
2022-10-13 15:18:15
889
原创 Effective Modern C++[实践]->只要有可能使用constexpr,就使用它
- `constexpr`变量具备`const`属性,且必须由编译器已知的值完成初始化。>- `constexpr`函数在调用时,若传入的实参值都是编译期已知的,则返回的结果也是`constexpr`变量,否则返回非`constexpr`变量>- 比起非`constexpr`变量或`constexpr`函数而言,`constexpr`函数或`constexpr`变量可以用在一个作用域更广的语境中>- `constexpr `是对象和函数接口的一部分。
2022-09-28 17:19:18
1188
原创 c++ 关于注释的故事
注释用于向读取代码的人指示某些内容。注释被编译器视为空白,不会改变代码的实际含义。`C` 语言中有两种注释语法,原始的`/* */`和稍微新一点的`//`。一些文档系统如`Doxygen`使用特殊格式的注释来帮助生成代码的文档。
2022-09-21 18:29:09
438
翻译 深入C++:书籍|工具|教程|博客|社区
不要被“精通 C++”这个标题冲昏了头脑。 这是一个永无止境的旅程。 因为 ISOCPP 每三年 释放一次小象。 目前该标准涵盖近 1500 页,C++ 并不是最容易学习和掌握的语言。 我已经在这个行业度过了足够多的时间。 但有时还是觉得冒名顶替。 我想分享我的 现代 C++ 之旅已经有一段时间了。 虽然,我正在通过这些文章一点一点地分享知识。 但是,还有其他一些东西帮助我度过了这段旅程,比如在线工具、书籍、课程、博客等。所以,以下是这些项目的无序列表。
2022-09-01 21:17:06
336
原创 Effective Modern C++[实践]->只要函数不会发射异常,就为其加上noexcept
noexcept声明式函数接口的组成部分,这意味着调用方可能会对它有依赖 相对于不带noexcept声明的函数,带有noexcept声明的函数有更多的机会得到优化 noexcept对于移动语义swap,内存释放函数和析构函数非常有用 大多数函数是异常中立的,而不是noexcept...
2022-08-30 15:51:43
472
MVP-010-隔膜泵使用说明.docx
2020-01-08
AltaCore-1553文档翻译.pdf
2020-03-24
信号与槽的两种深度玩法源码
2022-02-18
log4Qt.rar
2020-03-12
QT高精度定时器
2018-08-23
win10找不到gpedit.msc时的批处理文件
2020-07-08
gsl-msys.rar
2020-02-14
QtXlsx编译包.rar
2020-02-17
MultiThreadTest.rar
2019-11-21
qt 多线程共享全局缓冲区
2020-11-24
IMgReader程序的测试数据文件
2020-09-27
testPylon5.rar
2019-11-25
抽奖关键类代码实现.rar
2019-12-05
ConcurrentComputationTest.rar
2019-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅