24. 并发编程与同步机制
系统掌握并发与同步核心:竞态条件与临界区、原子性与可见性、互斥锁(synchronized/ReentrantLock/读写锁)、信号量与条件变量、自旋锁与乐观并发、内存模型与 volatile、无锁编程(CAS/ABA)、以及死锁/活锁/饥饿的成因与工程避免。
tag
系统掌握并发与同步核心:竞态条件与临界区、原子性与可见性、互斥锁(synchronized/ReentrantLock/读写锁)、信号量与条件变量、自旋锁与乐观并发、内存模型与 volatile、无锁编程(CAS/ABA)、以及死锁/活锁/饥饿的成因与工程避免。
上一节给出了 happens-before 的定义,本节回答它由哪些操作建立。逐条拆解官方文档的 Synchronization 小节:初始化、goroutine 创建、channel 收发与关闭、锁、Once、原子操作、终结器,每条规则配一段本机 -race 实测,并汇总成一张「建立 happens-before 的操作」对照表。
并发正确性不是「加个锁就行」,而是一套可证伪的形式定义。本节逐字拆解官方 Go Memory Model 文档:内存操作的四个细节、sequenced before 与 synchronized before 如何合成 happens-before、三条 Requirement 各自约束什么、data race 的精确定义,以及 DRF-SC 保证的边界。
深入 WASM 二进制文件内部:Section 结构(type/import/function/memory/export)、LEB128 变长整数编码、指令字节码、线性内存与 Memory Growth、Table 间接调用机制,从字节层面彻底理解 WebAssembly。
彻底讲清楚 Go 语言中零值机制、make 与 new 的区别,结合内存布局、汇编视角与编译器行为,消除长期混淆