需要编程基础

2026

什么是并发 Part 4:实例分析——Go 语言并发实现

本文的内容基于 go1.25.6 源代码,该版本发布于 2026-01-16。 Go 语言的源代码可以在 https://github.com/golang/go/ 找到,文章中所有在代码段中 标注的文件路径都是相对于该源码仓库根的路径。 引言 Go 语言,是一门从设计之初,就 …
Read All

什么是并发 Part 3:协程与事件循环

本文中使用了 Lua 作为概念展示所使用的语言。 如果对文中使用的 Lua 语法有不理解的地方,可以在Lua 速查手册一文中查找对应的解释。 常见的并发模型 多进程是最简单的并发模型。 操作系统想要提供丰富的功能就不得不采用多进程进行并发。设备的 CPU 以很快频率在 不同的进 …
Read All
2025

什么是并发 Part 2:缓存一致性

本文中会出现 ARM64 汇编代码。 如果对文中使用的语法有不理解的地方,可以在Aarch64 汇编速览一文中查找对应的解释。 引言 首先我们来看一段 C 代码: int max_index(int *list, int len) { int result = -1; int …
Read All

什么是并发 Part 1:硬件支持与机制

本文中将会出现使用 C 语言的代码样例用于说明概念。 本文中会出现 ARM64 汇编代码。 如果对文中使用的语法有不理解的地方,可以在Aarch64 汇编速览一文中查找对应的解释。 并发操作用在哪了? 并行与并发,都是提升计算机硬件使用效率的方式。二者在名称上接近,但是描述的行 …
Read All

Aarch64 汇编速览

本文为读者提供简单的 ARM64 汇编语言的参考,旨在让读者在本博客其它文章中看到 ARM64 汇编代码时能够快速找到语言说明,以便理解文章中出现的内容。 文本要求读者对计算机组成有很基础的了解,且具有一定的高级程序语言基础, 知道变量、分支、循环、函数的概念与使用方法。 在本文 …
Read All

系统中断——硬件的事件系统

中断是什么 CPU 在实现功能时,总是需要与其它的硬件进行协作的。读取用户输入、提供数据输出, 都需要 CPU 与其它硬件进行交互。 从简单的统筹策略出发,想要提升运算效率,CPU 给外围硬件下达任务信号后,就不应该等待 硬件返回任务结果后才回到主要负载的处理中。而是应该立即进行 …
Read All