Comprehensive Rust(简体中文) 202412
17 2.2 本培训中的代码示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 使用 Cargo 在本地运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 I 第一天:上午 20 3 欢迎来到第一天 21 4 Hello 2 Rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 20.3 特征对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 20.4 练习:二叉树 . . . 197 34.2.2 数组(Arrays). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 34.2.3 特征对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 34.2.4 变量 . . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . 354 16.1. 使用线程同时地运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 16.2. 使用消息传递在线程间通信 . . . . . . . . . . . . . . . . 414 17.6. future、任务和线程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 18. 面向对象编程特性 . . . . . . . . . . . . . . . 425 18.1. 面向对象语言的特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 18.2. 顾及不同类型值的 trait 对象 . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 10 天前3Rust 程序设计语言简体中文版
......................... 413 16.1. 使用线程同时地运行代码 ........................................................................................... 414 16.2. 使用消息传递在线程间通信 .................................... ...................... 433 17. Rust 的面向对象编程特性 ................................................................................................ 435 17.1. 面向对象语言的特点 ................................... ...................... 436 17.2. 顾及不同类型值的 trait 对象 ..................................................................................... 440 17.3. 面向对象设计模式的实现 .........................................0 码力 | 600 页 | 12.99 MB | 1 年前3Rust 语言学习笔记
....................................... 39 第四章 面向对象编程 ............................................................................... 43 4.1 面向对象数据结构 .............................................. Trait ........................................................................... 50 4.3.7 trait 对象............................................................................ 52 4.3.8 trait 定义中的生命周期和可变性声明 .......................................... 89 第七章 多线程与线程通信 ......................................................................... 91 7.1 线程 .....................................................0 码力 | 117 页 | 2.24 MB | 1 年前3Real world Rust - Why and how we use Rust in TiKV
RAII / Ownership ○ No NULL ptr ● 万物皆有所有权 ○ Ownership system ○ Mutable and immutable reference ● 线程安全 ● 不相信程序员 内存安全 ● 所有权 ● RAII / Lifetime fn do_vec(v: Vec) {} fn main() { let a = vec }; 线程安全 var n = 1 go func() { n += 1 }() go func() { n += 1 }() Send / Sync 原语 ● 如果 T: Send,那么可以安全的在线程间传递 T ○ 不同线程即使销毁也无所谓 ● 如果 T: Sync,那么可以安全的在线程间共享 T ● Rust 的类型推导系统和编译检查跨线程传递和共享的对象 的类型推导系统和编译检查跨线程传递和共享的对象 是否满足 Send + Sync TiKV ● 大规模分布式 Key-Value 数据库 ● 支持 ACID 跨行事务支持 ● 支持 MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现 SQL 层的下推算子 TiKV 的前置需求 ● 极高的 0 码力 | 29 页 | 506.53 KB | 1 年前3Rust 异步并发框架在移动端的应用 - 陈明煜
mobile environment Rust 异步机制 Asynchronous Rust 异步并发框架是许多大型应用、系统具备的底层能力。 区别于多线程编程模型,它带来以下优势: 任务调度颗粒度更小,充分利用线程资源 更可控的线程数 单个任务资源占用:几十 KB -> 几百 Byte 任务切换时间 : 10 微秒 -> 100 纳秒 Rust 语言并没有提供异步并发框架, 并非异步运行时。它通过同步 多线程模型提供了并行迭代器功能, 适用于处理 CPU 密集型计算任务 rayon 现有框架无法完美适配移动端(一) Core Thread Thread Worker Worker task task Local queue Local queue Tokio 采用了如右图这种 GMP 模式: • 一核可以绑定多线程,每个线程拥有一个 Worker ,每个 ,每个 Worker 拥有一个任务队列 • 但线程拥有相同优先级 • Worker 只持有一个本地 FIFO 队列 移动端诉求:优先级 • 任务区分优先级: UI 显示 vs 后台下载 • 大小核调度 Incompatibility of the third party Runtime with Mobile 现有框架无法完美适配移动端(二) 移动端诉求:易用性 • IO 密集性任务与 CPU0 码力 | 25 页 | 1.64 MB | 1 年前3Rust语言核心竞争力-庄晓立
*x = 66) .all(|_| true); } http://is.gd/9aZTCo • FFI 直接调用C库,运行时零损耗 • Thread 直接使用OS本地线程,无额外管理调度损耗 • FileSystem Network等IO操作 薄薄一层封装,通常唯一对应某个系统API调用 • Closure Inline, Unboxed (No tx.send(i).unwrap(); }); } 默认是Move,除非类型实现了Copy接口(POD) tx(类型是Sender)被move到新的线程; i(类型是i32)被copy到新的线程(逐字节拷贝)。 Ownership(所有权) Owns Owns 所有权转移 Move, Transfer Ownership 产权证 产权证 最后一任主人(所有者)0 码力 | 51 页 | 1.09 MB | 1 年前3Hello 算法 1.2.0 简体中文 Rust 版
。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 www.hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 www.hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持0 码力 | 387 页 | 18.51 MB | 10 月前3Hello 算法 1.1.0 Rust版
JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持0 码力 | 388 页 | 18.50 MB | 1 年前3Hello 算法 1.0.0 Rust版
JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 不会之间反复横跳,那么本书正是为你量身定制的! 如果你已经积累一定的刷题量,熟悉大部分题型,那 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持0 码力 | 383 页 | 17.61 MB | 1 年前3
共 25 条
- 1
- 2
- 3