并发架构与同步原语

为了追求极限性能,cpu硬件搞出了独立缓存(L1/L2)和乱序执行,但也留下了“数据不同步”和“顺序错乱”的烂摊子。硬件用MESI协议和内存屏障指令来修补。编程语言为了抹平不同平台(xv6/arm)的差异,制定了内存模型契约,让程序员通过指定内存序(relaxed/acquire/release/sc)来指挥编译器和cpu自动插入屏障。而程序员利用这些契约和底层的硬件CAS指令,最终构建出了无锁算法以及互斥锁等同步原语,为多线程并发提供了正确同步的基础设施。 ...

June 11, 2026 · 7 min · 3407 words

并发编程的一些思考

关于并发编程的一些思考 今天我在咖啡店观察店员们忙碌的身影,脑海中不禁浮现出计算机科学中“并发编程”的多线程模型。仔细琢磨后发现,同样是引入“多线程”来提高效率,根据任务性质的不同,至少存在两种截然不同的情形。这不仅是咖啡店运营的智慧,更是软件架构设计的生动缩影。 ...

June 11, 2026 · 5 min · 2163 words