
Rust 实战丨手写一个 oneshot channel
本文从零开始,通过多版本迭代,实现一个安全的 Rust oneshot channel。我们将深入 `AtomicBool`、`UnsafeCell`、`MaybeUninit` 的使用,通过 `Drop` 管理内存,并最终以 `Sender`/`Receiver` 模式和所有权机制封装 `unsafe`,构建健壮的并发原语。
本文从零开始,通过多版本迭代,实现一个安全的 Rust oneshot channel。我们将深入 `AtomicBool`、`UnsafeCell`、`MaybeUninit` 的使用,通过 `Drop` 管理内存,并最终以 `Sender`/`Receiver` 模式和所有权机制封装 `unsafe`,构建健壮的并发原语。
本文以三段迭代示例演示如何在 Rust 中手写自旋锁:从最小化原子标志实现,到绑定受保护数据,再到借助 RAII 实现自动解锁。过程中深入讲解 Atomic 内存顺序、UnsafeCell 内部可变性、Send/Sync 并发标记,以及 Drop/Deref 零成本抽象,帮助读者理解自旋锁适用场景与潜在陷阱,并掌握将并发安全问题前移到编译期的工程思维。
本文是在笔者学习了极客时间《RAG 快速开发实战》课程后,对 RAG 相关技术进行一个梳理归纳,帮助开发者在 RAG 开发中进行快速定位、系统学习。
本文总结了读者在阅读《Unit Testing》书籍中的收获和思考。
本文对《Unit Testing》的关键观点进行了梳理总结。
本文从最简单的数据格式开始,通过不断解决一个个关键问题,最终推导出 MySQL 数据的底层存储结构,即 B+ 树。
本文详细介绍了如何在 Hexo 博客中优雅地集成 Markmap 思维导图,让你能够直接在 Markdown 文件中创建交互式思维导图。同时这也是一个 Hexo 插件的标准实现案例。
本文介绍了 OpenTelemetry 的采样机制,特别是为什么它在 SDK 层面不支持尾采样。
阅读《悟道领域驱动设计》后的一些笔记和思考。
本文介绍了 Go 1.24 版本引入的实验性包 testing/synctest,并详细讲解了如何使用它优雅地测试并发代码。