12 2025 档案

摘要:1.调度的概念 1.1 调度的基本概念 1. 什么是调度? 在多道程序环境中,内存中通常有多个进程等待执行,但 CPU 的核心数量是有限的。调度就是操作系统按照一定的策略,从就绪队列中选择一个进程,把 CPU 的使用权分配给它的过程。 根本目的: 提高 CPU 利用率,让系统更高效、公平地运行。 1 阅读全文
posted @ 2025-12-18 22:12 belief73 阅读(0) 评论(0) 推荐(0)
摘要:1.经典模型 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> // 必须包含线程库 #include <arpa/inet.h> #include 阅读全文
posted @ 2025-12-18 16:59 belief73 阅读(1) 评论(0) 推荐(0)
摘要:1.makefile的规则和make的工作原理 第一部分:Makefile 的规则 (The Rules) Makefile 的核心就是规则 (Rules)。无论文件多复杂,最终都可以拆解为一条条如下格式的规则: target ... : prerequisites ... command ... 阅读全文
posted @ 2025-12-18 14:36 belief73 阅读(3) 评论(0) 推荐(0)
摘要:1. 极简模板 (Hello World) 这是运行一个 C++ 项目所需的最小化配置。 cmake_minimum_required(VERSION 3.10) # 指定 CMake 最低版本 project(MyProject) # 项目名称 # 设置 C++ 标准 (推荐 C++14 或 C+ 阅读全文
posted @ 2025-12-18 14:36 belief73 阅读(3) 评论(0) 推荐(0)
摘要:目录 一:Git 二:SVN与Git的的区别 三、安装Git 四:常规操作 五:远程仓库 六:创建与合并分支 七:bug分支 八:多人协作 九:git可视化工具 Git Git 是一种分布式版本控制系统,用于管理软件项目的源代码。它是由 Linux 之父 Linus Torvalds 开发的,并已经 阅读全文
posted @ 2025-12-18 14:35 belief73 阅读(3) 评论(0) 推荐(0)
摘要:为什么需要 Commit 规范? 在深入格式之前,先理解“为什么”能让你坚持遵守: 代码审查 (Review) 更高效:清晰的标题能让 Reviewer 快速判断修改的范围和性质。 自动化生成 Changelog:规范的格式可以直接脚本提取生成发布日志。 版本回溯与定位 (Bisect):当出现 B 阅读全文
posted @ 2025-12-18 14:35 belief73 阅读(2) 评论(0) 推荐(0)
摘要:1.Git是什么 Git (分布式版本控制工具): 它是一个软件工具,安装在本地计算机上。 它的作用是追踪和管理项目(尤其是代码)的历史版本。 “分布式”意味着每个开发者都有完整的代码历史记录,无需依赖中心服务器即可工作。 GitHub (代码托管平台): 它是一个基于网络的在线服务/平台。 它的作 阅读全文
posted @ 2025-12-18 14:34 belief73 阅读(4) 评论(0) 推荐(0)
摘要:人话版 第一件事:无关紧要的“改名” 场景: 你要定义一个模板。 代码: template<class T> ... template<typename T> ... 人话解释: 这就好比你叫你爸,叫“父亲”还是叫“老爸”,意思完全一样,他都知道你在叫他。 以前 C++ 只有 class(父亲)。 阅读全文
posted @ 2025-12-18 14:15 belief73 阅读(1) 评论(0) 推荐(0)
摘要:.两种编程范式的对比 Scott Meyers 在本条款开头提出了一个重要的视角转换: 面向对象编程 (OOP) 的世界里,我们习惯于 显式接口 (Explicit Interfaces) 和 运行期多态 (Runtime Polymorphism)。 泛型编程 (Generic Programmi 阅读全文
posted @ 2025-12-18 13:56 belief73 阅读(1) 评论(0) 推荐(0)
摘要:#include <concepts> // 定义 Concept:显式描述接口要求 template<typename T> concept HasSize = requires(T a) { { a.size() } -> std::convertible_to<std::size_t>; }; 阅读全文
posted @ 2025-12-18 13:52 belief73 阅读(1) 评论(0) 推荐(0)
摘要:github地址:https://github.com/belife73/threadPool.git 1.理论基础 1.🧐 线程池是什么? 线程池是一种管理和复用线程的机制。在软件开发中,尤其是在服务器端编程或并发处理任务时,如果每当有一个新任务到来就创建一个新线程,任务执行完毕后再销毁线程,会 阅读全文
posted @ 2025-12-18 00:16 belief73 阅读(1) 评论(0) 推荐(0)
摘要:人话版本 1. 正常人的做法:组合 (Composition) 想象你要造一辆 “汽车”。 你也知道,汽车需要一个 “引擎” 才能跑。 最自然的做法是什么? 你在车身里留个位置,塞一个引擎进去。 这就叫 “组合”(Item 38 讲的)。 关系是:汽车“有一个”引擎 (Car has-a Engin 阅读全文
posted @ 2025-12-17 20:21 belief73 阅读(2) 评论(0) 推荐(0)
摘要:我们之前的 Item(如 32, 34, 36)都在讨论 Public Inheritance(公有继承),它的核心意义是 "Is-a"(是一个) 的关系。 而 Composition(复合/组合) ——即一个类包含另一个类型的对象作为成员变量——则代表了完全不同的两种意义: Has-a(拥有):应 阅读全文
posted @ 2025-12-17 20:21 belief73 阅读(4) 评论(0) 推荐(0)
摘要:1. 诡异的现象:函数与参数的“精神分裂” 假设我们设计一个图形类体系,绘制图形时可以指定颜色。基类提供了一个默认颜色 Red,而派生类希望将默认颜色改为 Green。 class Shape { public: enum ShapeColor { Red, Green, Blue }; // 虚函 阅读全文
posted @ 2025-12-17 20:20 belief73 阅读(4) 评论(0) 推荐(0)
摘要:人话版 1. 什么是多重继承 (MI)? 单继承:你只有一个爸爸。你继承了爸爸的房子。 多重继承:你有两个(或更多)爸爸。你同时继承了爸爸A的房子和爸爸B的车子。 在代码里就是这样: class BorrowableItem { ... }; // 可借阅物品 class ElectronicGad 阅读全文
posted @ 2025-12-17 20:19 belief73 阅读(1) 评论(0) 推荐(0)
摘要:1. 现象:行为分裂(Schizophrenic Behavior) 让我们看一个反面教材。假设有一个基类 B 和一个派生类 D。基类中有一个普通函数 mf(非虚函数),但你在派生类中错误地重新定义(隐藏/Shadow)了它: #include <iostream> class B { public 阅读全文
posted @ 2025-12-17 20:14 belief73 阅读(2) 评论(0) 推荐(0)