Study note

Making Sense of Acquire-Release Semantics

Properties

Type
Blogs
Status
待读
Domain
Systems
Category
并发、同步与内存模型
Source
davekilian.com
Vault note
library/articles/systems/Making-Sense-of-Acquire-Release-Semantics-25157ec290e4e70d.md

Summary

通过单生产者单消费者 ring queue 的错误执行,解释真实机器为何不存在程序员想象中的单一全局内存顺序,以及 cache、乱序执行和 memory ordering 如何导致“标志已可见但数据尚不可见”;随后从 full fence、single ownership 和跨线程 handoff 推导 release store 与 acquire load。

Highlights

把抽象内存序解释为共享内存所有权的发布与获取:release 保证之前的操作先于发布写完成,acquire 保证获取读之后的操作不会提前。文章最后给出 C++ atomic queue 示例,也能直接帮助理解 Rust `Ordering::Release`、`Acquire` 与 `AcqRel`。

Notes

从所有权交接理解 acquire/release 内存序。

Comments

Loading comments...