FOSA丨01丨软件架构概述

本篇通过回答《Fundamentals of Software Architecture》第一章的课后思考题,深入探讨软件架构的四个定义维度、架构决策与设计原则的区别、软件架构师的核心职责,以及软件架构的第一定律,帮助建立对软件架构的全面认识。

架构设计

Q&A丨在 AI 时代,如何应对技术焦虑?

本文探讨了在 AI 时代如何应对技术焦虑的问题。通过分析底层技术学习的必要性,提出了"原则重于工具"的核心观点,并构建了包含 T 型知识结构、时间盒管理、即时学习等策略的系统性解决方案,帮助工程师在技术海洋中找到方向,从焦虑走向成长。

ai问答

Q&A丨在 AI 时代,还有必要学习底层技术吗?

本文讨论了在 AI 时代继续扎根学习底层技术的重要性,并给出 5 个说服自己的理由。

ai问答

读书笔记丨《Rust Atomics and Locks》

本篇是 Rust 并发编程系列文章的最后一篇,笔者将尝试对书中涉及到的关键知识点进行统一梳理,主要是为了便于查阅,所以不会再过多深入细节,感兴趣的读者可以跳转到对应篇章进行详细查阅。

读书笔记

Rust 实战丨手写一个 RwLock

通过三个渐进式版本深入理解 RwLock 的实现原理,从基础功能到性能优化再到公平性保证,掌握原子操作、内存顺序、条件变量等并发编程核心技术,并学会解决写饥饿等实际问题。

rust

Rust 实战丨手写一个 Condvar

在多线程编程中,你是否遇到过这样的困扰:消费者线程不断轮询检查数据是否准备好,白白浪费 CPU 资源?或者在生产者-消费者模式中,如何让消费者优雅地等待数据到来?本文将带你手写一个高效的 Condvar(条件变量),解决线程间的等待与唤醒问题。我们将从最基础的实现开始,逐步优化到减少不必要的系统调用,并深入分析内存顺序的选择,让你彻底理解条件变量背后的设计哲学。

rust

Rust 实战丨手写一个 Mutex

本文带你从零开始实现一个 Rust 中的 Mutex 锁,结合 Rust 原子操作和内存顺序的核心知识,逐步揭示 Mutex 背后的等待与唤醒机制。通过阅读本文,你不仅可以掌握如何使用 Rust 的原子 API 实现一个高效的互斥锁,还能深入理解原子操作背后的内存模型,为掌握更复杂的并发编程技巧打下坚实基础。

rust

Rust 原理丨操作系统并发原语

操作系统的并发原语是实现各种锁、条件变量和同步工具的核心基础。无论是 Linux 中被广泛使用的 futex、macOS 中的 pthread 和 os_unfair_lock,还是 Windows 系统上的重量级内核对象、轻量级原语及地址等待机制,本质上都是围绕着三个基本动作展开:wait、wake_one 和 wake_all。本文将通过对三大主流操作系统底层并发原语的梳理与对比,帮助你建立统一的认知框架,更深入地理解并发编程背后的系统级支持,避免在实践和学习中被五花八门的概念搞晕。

rust

Rust 原理丨从汇编角度看原子操作

本篇文章沿着 “CPU → 汇编指令 → Rust 原子语义” 的链路,带你拆解 Atomic* 背后到底发生了什么。我们先用 x86-64 与 ARM64 的真实编译结果对比 Ordering 的生成代码,再结合缓存一致性协议与编译器重排规则,解释为什么同一行 Rust 代码在不同平台会呈现截然不同的机器级行为。读完后,你不必死记硬背五种内存顺序,也能判断何时选 Relaxed、何时必须上 SeqCst,并掌握一套“看 asm → 辨语义 → 做权衡”的分析方法,为写锁、并发容器或性能调优提供根底。

rust

Rust 实战丨手写一个 Arc

本文手把手带你拆解并重构 Arc:从单线程引用计数,到跨线程 Weak 防环,再到剥离强/弱引用与内存序优化,层层深入 Rust 并发与内存模型核心。

rust
1236