中断 中断是一种由硬件或软件触发的机制,当某个事件(如外设准备好数据、定时器到期)发生时,设备向CPU发送信号,CPU暂停当前执行的任务,保存现场,跳转执行对应的中断服务程序(ISR)处理该事件。处理完成后,CPU恢复之前的任务,保证及时响应外部或内部事件,提高系统响应效率和并发能力。 轮询机制 轮询是CPU主动周期性地检查设备状态或某个条件是否满…
在学习编码的过程中,我们最常听到 Spring MVC 中的 MVC ,与 Vue 中的 MVVM 。他们实际上都是“架构设计模式”中的一种设计思路,并不专属于前端或后端,任何地方只要涉及“界面 + 业务逻辑 + 数据”,理论上都能用这些设计思想来组织代码。接下来,我们按照架构演进的顺序来分别介绍三种设计模式。 MVC(Model-View-Con…
概念介绍 MapReduce 是一种用于处理和生成大规模数据集的编程模型。 它将整个计算过程分为两个核心阶段:Map(映射) 和 Reduce(归并)。在 Map 阶段,数据被分成小块并并行处理,提取出中间的键值对结果;在 Reduce 阶段,框架会将所有具有相同键的数据聚合起来,由用户定义的逻辑进行归并处理,最终输出结果。 MapReduce 的…
# 🌟 VI 三种模式 1. 普通模式(默认进入) 2. 插入模式(编辑内容) 3. 命令模式(以 : 开头执行命令) ──────────────────────────────────────────── # ✅ 普通模式(移动/复制/删除/粘贴等) i → 进入插入模式(插入光标前) I → 插入到行首 a → 进入插入模式(插入光标后) A…
通用命令 1. KEYS <pattern> ---------------------------------- 作用:根据通配符匹配,列出所有符合条件的 key。 示例: KEYS user:* # 匹配所有以 user: 开头的 key 返回值:匹配的 key 列表 注意:遍历全库,性能差,**生产环境建议使用 SCAN 命令替代**。…
什么是NoSQL? NoSQL 是 "Not Only SQL" 的缩写(起初也有另一种解释为“No SQL”),表示“不仅仅是 SQL”。它泛指一类 非关系型数据库,与传统的关系型数据库(如 MySQL、PostgreSQL)不同,它们通常不使用固定的表结构(没有严格的“表、行、列”模型),而是采用更灵活的数据模型来存储数据。 NoSQL 的设计…
1. DAC(Discretionary Access Control) 自主访问控制 核心特点: 资源拥有者决定权限:用户对其拥有的资源(如文件)有控制权,可以授予或撤销他人的访问权限。 权限可继承/传播:被授权的用户可以继续把权限授予其他用户(这可能导致“权限扩散”)。 举例: 用户 A 拥有一个文件 file.txt,他设置权限让用户 B 也…
在嵌入式系统中,任务之间的通信是实现并发、同步和资源共享的关键。FreeRTOS 提供了多种通信机制,以满足不同的应用场景和性能要求。本文将重点介绍三种常用的通信方式:消息队列(Queue)、邮箱(Semaphore)和任务通知(Task Notification),并通过代码示例分析其适用场景和使用方法。 一、消息队列(Queue) 概述 消息队…
Java 方法声明结构 一个方法的声明包括了多个部分,下面是详细的结构及每一部分的解释。 1. 方法声明完整结构: [注解] [访问修饰符] [其他修饰符] <泛型声明> [返回类型] [方法名](参数列表) [throws 异常列表] 2. 每部分的详细解释: 部分说明注解用于给方法添加元数据。例如,@Override、@Deprec…
贪婪算法(Greedy Algorithm) 1. 基本思想 每一步都做当前看来最优的选择(即局部最优),希望通过一系列局部最优,达到整体最优。 特点是只顾眼前(每次选择最优),不回溯。 2. 贪婪问题分类 绝对贪婪问题: 每一步的局部最优选择,最终一定得到全局最优解。 例子:活动安排问题、最小生成树问题。 相对贪婪问题: 贪婪算法得到的解不是全局…