Known unknowns

Rust学习实践(六) -- Rust特性:unsafe、macro宏编程、异步编程

Rust学习实践,进一步学习梳理Rust特性:unsafe、macro宏编程、异步编程。 1. 背景 继续进一步学习下Rust特性,本篇学习梳理:unsafe、async异步编程,顺带了解下macro宏编程。 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎指正。若需系统学习,建议参考原链接。 2. unsafe Rust 通常Rust在编译时会强制...

Rust学习实践(五) -- Rust特性:并发编程

Rust学习实践,进一步学习梳理Rust特性:多线程并发编程。 1. 背景 继续进一步学习下Rust特性,本篇学习梳理:多线程并发编程。 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎指正。若需系统学习,建议参考原链接。 2. 概要说明 Rust中由于语言设计理念、安全、性能的多方面考虑,并不像Go中简化到一个go关键字就可以使用go routin...

Rust学习实践(四) -- Rust特性:智能指针

Rust学习实践,进一步学习梳理Rust特性:智能指针。 1. 背景 继续进一步学习下Rust特性,本篇学习梳理:智能指针。 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎指正。若需系统学习,建议参考原链接。 2. 概要说明 智能指针往往是基于结构体实现,它与自定义的结构体最大的区别在于它实现了 Deref 和 Drop 特征: Deref...

Rust学习实践(三) -- Rust特性:生命周期及函数式编程

Rust学习实践,进一步学习梳理Rust特性。 1. 背景 上两篇过了一遍Rust基础语法并进行demo练习,本篇继续学习下Rust特性。 相关特性主要包含:生命周期、函数式编程(迭代器和闭包)、智能指针、循环引用、多线程并发编程;异步编程、Macro宏编程、Unsafe等。 限于篇幅,分多篇博客笔记梳理记录,本篇主要涉及:生命周期 及 函数式编程(涉及闭包和迭代器)。 说明:本博...

Rust学习实践(二) -- Demo项目:文件搜索工具

Rust学习实践,进行Rust的“实战”(Demo)练习:文件搜索工具。 1. 背景 上篇过完了Rust的基础语法,接下来进行Rust的一个Demo练习。跟着几个参考项目练手,先基于:入门实战:文件搜索工具。 虽然是一个练习项目,本篇尝试假装按一个正式项目的基本流程进行管理迭代,如:项目需求分析、项目结构设计、项目开发、项目测试、项目发布。 说明:本博客作为个人学习实践笔记,可供参考...

Rust学习实践(一) -- 总体说明和Rust基础

Rust学习实践,本篇为开篇,总体说明和Rust基础。 1. 背景 之前学过Rust基本使用,间隔时间有点长且实践较少,遗忘了很多,重新学习一下。 Rust的优势此处不做过多描述,可参见这篇介绍(“自夸”):进入 Rust 编程世界 前面还留了不少坑待填,暂时放一放: 网络方面,TCP发送接收过程(二) – 实际案例看TCP性能和窗口、Buffer的关系拥塞 占了坑但一直还没...

MySQL学习实践(三) -- MySQL索引

MySQL学习实践,本篇学习梳理MySQL索引。 1. 背景 本篇梳理学习MySQL索引。 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎指正。若需系统学习,建议参考原链接。 2. 索引的常见数据结构 几种常见的实现索引的数据结构: 哈希表 比较适合等值查询场景;但范围/区间查询效率较低 有序数组 ...

MySQL学习实践(二) -- MySQL事务

MySQL学习实践,本篇学习梳理MySQL事务。 1. 背景 本篇梳理学习MySQL事务。 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎指正。若需系统学习,建议参考原链接。 2. 事务特性 ACID: 原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成 一致性(Consistency):事务操作前和操作后...

MySQL学习实践(一) -- 整体架构和基本操作的流程

MySQL学习实践,本篇介绍整体架构和基本操作的流程。 1. 背景 MySQL没太系统深入地学习梳理,前面梳理学习了一下基于LSM-Tree的leveldb,此篇开始,深入学习下基于B树/B+树的MySQL。 学习过程中正好结合场景,对相关联的Linux存储、CPU、内存管理、进程管理等模块知识查漏补缺。 说明: 学习代码基于mysql-server的 5.7.44 tag,...